我想知道如何从具有特定场景的后台启动应用程序,而不是总是从启动屏幕或 main.storyboard 的初始 ViewController 启动。
例如,如果用户正在查看个人资料场景,然后让应用程序从那里进入后台,我想在下次用户将应用程序带到前台。
现在的情况是应用程序总是从启动屏幕开始,或者之前加载的信息消失了。
如何记住App进入后台的具体场景?顺便说一下,我在重构 Storyboard时注意到了这个问题。
最佳答案
这正是状态恢复的目的!
状态恢复是 iOS 中的一项功能,可让用户以离开应用时的确切状态返回到他们的应用,而不管幕后发生了什么。
您可以通过覆盖 application:shouldSaveApplicationState: 和 application:shouldRestoreApplicationState: 从您的 appDelegate 启用它: 并让它们返回 true。
然后您必须将 restorationIdentifier 应用到您的 viewControllers(是的,您可以从 Storyboard 中进行 :))。这样做将使您的用户回到他们上次离开时的屏幕/屏幕层次结构...... 但是,您必须处理需要显示的数据的逻辑。在您的 viewController 子类中,您可以覆盖 encodeRestorableStateWithCoder: 和 decodeRestorableStateWithCoder: 来存储然后检索您的数据以从编码器显示。
在这里找到 Apple 文档:https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/PreservingandRestoringState.html
还有一个 Ray Wenderlich(爱这个人!)在这里:https://www.raywenderlich.com/117471/state-restoration-tutorial
关于ios - 当 App 从后台 iOS 启动时从特定场景开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38876713/