我有一个应用程序,它有一个带有两个选项卡的 UITabBarController,每个选项卡都有自己的导航 Controller 。现在我想在用户关闭应用程序时存储应用程序的状态,以便当用户重新启动应用程序时,应用程序将显示与上次关闭前相同的位置。
所以,在 applicationWillTerminate: 我有
[NSKeyedArchiver archiveRootObject:tabBarController toFile:@"lastVisitedTab"];
然后,在 applicationDidFinishLaunching: 我有
UITabBarController *last= (UITabBarController *)[NSKeyedUnarchiver unarchiveObjectWithFile:@"lastVisitedTab"];
if (last)
tabBarController = [last retain];
我还对 UIImage 进行了扩展,使其与 NSCoding 兼容。但是,这不起作用,因为状态没有保留。始终选择第一个选项卡,并且也不会保留任何导航。
有人可以告诉我哪里出了问题,或者告诉我如何正确地做吗?
最佳答案
我认为持久化实际对象有点矫枉过正。相反,只需保存 selectedIndex
属性(使用 [NSNumber numberWithInt: tabBar.selectedIndex]
),然后读回并在启动时设置属性。也许这不能正确回答您的问题,但对于您要实现的目标来说可能就足够了。
关于iphone - 保存和恢复标签栏 Controller 的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1552837/