- (BOOL)application:(UIApplication *)application shouldSaveApplicationState:(NSCoder *)coder { return YES; } - (BOOL)application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder { return YES; }Restorationldentifier UIKite 并没有自动存储所有关于应用状态的信息。你需要告诉UIKit你的哪些视图控制器需要参与进去。你要通过给storyboard中这些视图控制器分派一个Restoration Identifier来实现它。任何拥有Restoration ID的内容都会被保护并且恢复。
- (void)encodeRestorableStateWithCoder:(NSCoder *)coder { [super encodeRestorableStateWithCoder:coder]; [coder encodeObject:self.doorPhoto forKey:@"doorPhoto"]; } - (void)decodeRestorableStateWithCoder:(NSCoder *)coder { [super decodeRestorableStateWithCoder:coder]; self.doorPhoto = [coder decodeObjectForKey:@"doorPhoto"]; }
当在程序中按下home键的时候,就会调用encodeRestorableStateWithCoder:来保存你想要保存的对象,再下一次打开程序的时候,就会调用decodeRestorableStateWithCoder:来恢复你之前保存好的对象。