iOS应用状态保存和恢复

来源:互联网 发布:网络棋牌平台排名2017 编辑:程序博客网 时间:2024/05/24 01:17

应用场景:
当程序进入后台时候,把用户当前查看的页面层级保存起来,如果应用停止运行,那么用户在下次打开应用的时候,可以按照之前保存的状态恢复现场,让用户看起来仿佛从来没有关闭过一样。
实现步骤:
1.首先在AppDelegate中实现如下方法:
- (BOOL)application:(UIApplication )application shouldRestoreApplicationState:(NSCoder )coder
{
return YES; //允许恢复应用状态
}
- (BOOL)application:(UIApplication )application shouldSaveApplicationState:(NSCoder )coder
{
return YES; //允许存储应用状态
}
2.然后对需要状态保存的控制器和view设置Restoration ID
1)xib或者sb中添加Restoration ID (注意:需要对控制器所在链路上的所有控制器设置Restoration ID,可随意设置)
2)纯代码添加Restoration ID
这里写图片描述
注意点:
遵守UIViewControllerRestoration协议
并实现代理相关方法:
这里写图片描述
代理方法的作用:返回重新打开应用时看到的控制器,我们可以对这个控制器进行相关设置,并且执行这个方法会重新执行控制器的加载。
3.存储额外的与viewController相关的信息
在对应的控制器中实现如下方法:
这里写图片描述
4.存储更多与User Interface无关的信息
在AppDelegate中实现如下方法:
这里写图片描述
一点思考:
使用场景:原则上任何地方都可以使用,但是每个控制器都添加的话比较麻烦,所以建议可以选择一些有用户输入或者用户设置等用户操作的页面添加,避免用户重复输入。

原创粉丝点击