我看到很多相互矛盾的答案似乎都与情况有关,但我还没想出一个对我有用的答案。我正在Storyboard中构建一个标签式应用程序,我想将一个视图控制器的状态保存在一个位于导航控制器内的选项卡中。它有动态创建的对象(标签和图片),我想在关闭应用程序时保留它们。
到目前为止,我在AppDelegate.m中有以下内容:
-(BOOL)application:(UIApplication *)application shouldSaveApplicationState:(NSCoder *)coder {
return YES; }
-(BOOL)application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder {
return YES; }
并在我的viewController.m文件中:
-(void)encodeRestorableStateWithCoder:(NSCoder *)coder {
[coder encodeObject:self.view forKey:@"view"];
[super encodeRestorableStateWithCoder:coder]; }
-(void)decodeRestorableStateWithCoder:(NSCoder *)coder {
self.view = [coder decodeObjectForKey:@"view"];
[super decodeRestorableStateWithCoder:coder]; }
我还将RestorationID分配给了UITabBarController,导航控制器和相关的视图控制器。
现在,如果我最小化并恢复,数据会被保留,但如果我停止并使用xcode重新启动,它就会丢失。我错过了什么?
答案 0 :(得分:0)
尝试运行应用程序,按两次“主页”按钮转到应用程序切换器,将应用程序滑动以关闭它并通过单击主屏幕上的图标(而不是来自Xcode!)来运行它。现在一切都好吗?
我想当你从Xcode运行你的应用程序时,它不仅会重新启动它,而是重新安装它,所以这不是你需要的。