状态复原
英文术语: State Restoration
苹果官方示例
应用场景: 当应用退入后台, 把视图控制器的层级保存, 如果因为内存等问题, 应用被关闭了, 那么下次打开应用的时候, 按照保存的恢复, 让用户看上去app仿佛从来没有被关闭一样.
需要实现的方法:
- 在AppDelegate里
func application(application: UIApplication, shouldRestoreApplicationState coder: NSCoder) -> Bool {
return true
}
func application(application: UIApplication, shouldSaveApplicationState coder: NSCoder) -> Bool {
return true
}
对所有的viewController, 所有的view 设置其Restoration ID, 如果不是使用设计器而是用代码实现的话, 需要实现UIViewControllerRestoration协议
在每个viewController里实现方法:
override func encodeRestorableStateWithCoder(coder: NSCoder)
override func decodeRestorableStateWithCoder(coder: NSCoder)
这个方法会在viewDidLoad方法之后调用, 所以怎么用, 你懂的.
调试方法
- 在Xcode里运行app
- 在模拟器/设备里用home键切回桌面
- 在Xcode里stop运行
- 在Xode里面run