应用场景:
当程序进入后台时候,把用户当前查看的页面层级保存起来,如果应用停止运行,那么用户在下次打开应用的时候,可以按照之前保存的状态恢复现场,让用户看起来仿佛从来没有关闭过一样。
实现步骤:
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中实现如下方法:
一点思考:
使用场景:原则上任何地方都可以使用,但是每个控制器都添加的话比较麻烦,所以建议可以选择一些有用户输入或者用户设置等用户操作的页面添加,避免用户重复输入。
iOS应用状态保存和恢复
最新推荐文章于 2025-11-24 16:23:40 发布
本文介绍了iOS应用如何在进入后台时保存用户状态,并在下次打开时恢复,提供无缝体验。主要步骤包括在AppDelegate中实现状态保存和恢复的方法,为需要保存状态的控制器设置Restoration ID,遵守UIViewControllerRestoration协议并实现相关代理方法,以及存储额外信息。这种方法适用于用户输入或设置较多的页面,避免用户重复操作。
714

被折叠的 条评论
为什么被折叠?



