我想知道如何从具有特定场景的背景启动应用程序,而不是始终使用启动屏幕或main.storyboard的初始ViewController启动。
例如,如果用户正在查看配置文件场景,然后让应用程序从那里转到背景,我想在下次启动相同的配置文件场景(无需重新加载或配置文件图片,生物等)用户将应用程序带到前台。
现在的情况是,应用程序始终以启动屏幕和/或之前加载的信息开始。
当应用程序进入后台时,如何记住特定场景?顺便说一句,当我重新编写故事板时,我注意到了这个问题。
答案 0 :(得分:1)
这正是状态恢复的目的!
状态恢复是iOS中的一项功能,可让用户以离开时的确切状态返回应用程序 - 无论幕后发生了什么。
您可以通过覆盖应用程序从appDelegate启用它:shouldSaveApplicationState:和application:shouldRestoreApplicationState: 让他们回归真实。
然后你必须将restorationIdentifier应用于你的viewControllers(是的,你可以从故事板:)中完成它。这样做将允许您的用户回到他们上次离开时的屏幕/屏幕层次结构... 但是,您必须处理需要显示的数据的逻辑。在viewController子类中,您可以覆盖encodeRestorableStateWithCoder:和decodeRestorableStateWithCoder:来存储然后检索要从编码器显示的数据。
在此处找到Apple文档:https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/PreservingandRestoringState.html
Ray Wenderlich(爱男人!):https://www.raywenderlich.com/117471/state-restoration-tutorial