我有一个带有2个故事板的标签式应用程序。在第二个故事板中,我有一个恢复ID。 我在AppDelegate中实现了以下内容:
-(BOOL)application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder
{
return YES;
}
-(BOOL)application:(UIApplication *)application shouldSaveApplicationState:(NSCoder *)coder
{
return YES;
}
这在我的SecondViewController中:
-(void)encodeRestorableStateWithCoder:(NSCoder *)coder
{
[coder encodeObject:self.myTextView.text forKey:@"unsavedText"];
[super encodeRestorableStateWithCoder:coder];
}
-(void)decodeRestorableStateWithCoder:(NSCoder *)coder
{
self.myTextView.text=[coder decodeObjectForKey:@"unsavedText"];
[super decodeRestorableStateWithCoder:coder];
}
但是当我使用iOS模拟器进入Home时,停止正在运行的应用程序并重新启动,TextView不会恢复文本,我的应用程序将在第一个选项卡中启动。
答案 0 :(得分:2)
您可能错过了在视图层次结构中的其他位置分配恢复ID。
您是否也将AppDelegate从-application:didFinishLaunchingWithOptions:
更改为application:willFinishLaunchingWithOptions:
?
Downloads for Apple Developers页面提供了一些有用的状态恢复工具。
搜索恢复以查找将应用程序的状态恢复记录到控制台的调试配置文件,以及restoreArchiveTool以人类可读的格式转储状态恢复数据。 / p>