ios - 当 App 从后台 iOS 启动时从特定场景开始

标签 ios

我想知道如何从具有特定场景的后台启动应用程序,而不是总是从启动屏幕或 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/

相关文章:

ios - 我如何获得 Alamofire get-request 的 location-header?

iOS : Crop video weird green line left and bottom side in video

iphone - CFWriteStreamWrite/CFReadStreamWriter 容易超时吗?

iphone - 如果 userinteraction 为 nil 持续 3 秒,则调用一个函数

ios - Objective-C:复制和删除文件(文件管理器)

ios - 分享图片 Xamarin Ios

ios - 如何将 MonoTouch.Dialog 元素嵌入到 ViewController 中?

objective-c - Xcode 如何从单个项目派生项目

ios - CLLocationManager 问题

ios - 将字节附加到 NSInputStream 以便稍后顺序读取