【问题标题】:Starts with specific scene when App launch from background iOS从后台 iOS 启动 App 时从特定场景开始
【发布时间】:2016-08-10 23:40:19
【问题描述】:

我想知道如何从具有特定场景的背景启动应用程序,而不是总是从启动屏幕或 main.storyboard 的初始 ViewController 启动。

例如,如果用户正在查看个人资料场景,然后让应用程序从那里转到后台,我想在下一次启动相同的个人资料场景(无需重新加载或个人资料图片、简历等)用户将应用程序带到前台。

现在的情况是应用程序总是从启动屏幕开始,或者之前加载的信息消失了。

App进入后台时如何记住具体场景?顺便说一句,我在折射情节提要时注意到了这个问题。

【问题讨论】:

    标签: ios


    【解决方案1】:

    这正是状态恢复的目的!

    状态恢复是 iOS 中的一项功能,它允许用户以他们离开时的确切状态返回到他们的应用程序 - 无论幕后发生了什么。

    您可以通过覆盖 application:shouldSaveApplicationState: 和 application:shouldRestoreApplicationState: 从 appDelegate 启用它 并让它们返回 true。

    然后您必须将 restoreIdentifier 应用到您的视图控制器(是的,您可以从情节提要中完成 :))。这样做将允许您的用户回到他们上次离开时​​的屏幕/屏幕层次结构...... 但是,您必须处理需要显示的数据的逻辑。在您的 viewController 子类中,您可以重写 encodeRestorableStateWithCoder: 和 decodeRestorableStateWithCoder: 来存储然后检索您的数据以从编码器中显示。

    在此处查找 Apple 文档:https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/PreservingandRestoringState.html

    还有一个 Ray Wenderlich(爱这个男人!):https://www.raywenderlich.com/117471/state-restoration-tutorial

    【讨论】:

    • 请不要只发布站外链接作为答案。答案应至少包含一些独立的基本信息。链接变坏或消失,这样的答案对未来的读者没有用处。
    • 谢谢,让我看看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2018-02-10
    • 2019-07-19
    相关资源
    最近更新 更多