iOS中状态复原功能的实现

状态复原

英文术语: State Restoration
苹果官方示例

应用场景: 当应用退入后台, 把视图控制器的层级保存, 如果因为内存等问题, 应用被关闭了, 那么下次打开应用的时候, 按照保存的恢复, 让用户看上去app仿佛从来没有被关闭一样.

需要实现的方法:

  1. 在AppDelegate里

func application(application: UIApplication, shouldRestoreApplicationState coder: NSCoder) -> Bool {
return true
}
func application(application: UIApplication, shouldSaveApplicationState coder: NSCoder) -> Bool {
return true
}

  1. 对所有的viewController, 所有的view 设置其Restoration ID, 如果不是使用设计器而是用代码实现的话, 需要实现UIViewControllerRestoration协议

  2. 在每个viewController里实现方法:

override func encodeRestorableStateWithCoder(coder: NSCoder)
override func decodeRestorableStateWithCoder(coder: NSCoder)
这个方法会在viewDidLoad方法之后调用, 所以怎么用, 你懂的.

调试方法

  1. 在Xcode里运行app
  2. 在模拟器/设备里用home键切回桌面
  3. 在Xcode里stop运行
  4. 在Xode里面run

你可能感兴趣的:(iOS中状态复原功能的实现)