Ios 如何保存应用程序状态并再次还原

Ios 如何保存应用程序状态并再次还原,ios,objective-c,Ios,Objective C,我使用导航控制器,我有6个导航控制器,我希望应用程序保存状态并恢复应用程序终止时的最后一个屏幕。当它再次启动时打开它 在任何视图中,我都必须使用什么代码来执行此操作。苹果提供了执行此操作的机制: 来自链接的重要位: 状态保存和恢复不是一种自动功能和功能 应用程序必须选择使用它。应用程序表明它们支持 通过在其应用程序委托中实现以下方法实现功能: application:shouldSaveApplicationState: application:shouldRestoreApplicationS

我使用导航控制器,我有6个导航控制器,我希望应用程序保存状态并恢复应用程序终止时的最后一个屏幕。当它再次启动时打开它
在任何视图中,我都必须使用什么代码来执行此操作。

苹果提供了执行此操作的机制:

来自链接的重要位:

状态保存和恢复不是一种自动功能和功能 应用程序必须选择使用它。应用程序表明它们支持 通过在其应用程序委托中实现以下方法实现功能:

application:shouldSaveApplicationState:
application:shouldRestoreApplicationState:
通常情况下,这些方法的实现只会向返回YES 表明可以进行状态保存和恢复。然而 希望有条件地保留和恢复其状态的应用程序可以 在不应进行操作的情况下,返回NO。对于 例如,在发布应用程序更新后,您可能希望 应用程序:shouldRestoreApplicationState:方法返回否 如果您的应用程序无法有效地从以前的应用程序恢复状态 版本

保留视图控制器的状态

保存应用程序视图控制器的状态应该是您的首要任务 主要目标。视图控制器定义用户的结构 界面它们管理显示该界面所需的视图,并 它们协调支持这些数据的数据的获取和设置 意见。要保留单个视图控制器的状态,必须执行以下操作 以下是:

需要为视图控制器分配恢复标识符;看见 “标记视图控制器以进行保存。”必需提供 用于在启动时创建或定位新视图控制器对象的代码; 请参阅“在启动时还原视图控制器”。可选 使用编码器实现EncodeRestorableStates:和 decodeRestorableStateWithCoder:对任何 在后续启动期间无法重新创建的状态信息; 请参阅“编码和解码视图控制器的状态”

除了应用程序的视图控制器和 视图,UIKit为您提供了用于保存任何杂项数据的挂钩 你的应用程序需要的。具体来说,UIApplicationLegate协议 包括以下要覆盖的方法:

application:willEncodeRestorableStateWithCoder:
application:didDecodeRestorableStateWithCoder:

苹果提供了这样做的机制:

来自链接的重要位:

状态保存和恢复不是一种自动功能和功能 应用程序必须选择使用它。应用程序表明它们支持 通过在其应用程序委托中实现以下方法实现功能:

application:shouldSaveApplicationState:
application:shouldRestoreApplicationState:
通常情况下,这些方法的实现只会向返回YES 表明可以进行状态保存和恢复。然而 希望有条件地保留和恢复其状态的应用程序可以 在不应进行操作的情况下,返回NO。对于 例如,在发布应用程序更新后,您可能希望 应用程序:shouldRestoreApplicationState:方法返回否 如果您的应用程序无法有效地从以前的应用程序恢复状态 版本

保留视图控制器的状态

保存应用程序视图控制器的状态应该是您的首要任务 主要目标。视图控制器定义用户的结构 界面它们管理显示该界面所需的视图,并 它们协调支持这些数据的数据的获取和设置 意见。要保留单个视图控制器的状态,必须执行以下操作 以下是:

需要为视图控制器分配恢复标识符;看见 “标记视图控制器以进行保存。”必需提供 用于在启动时创建或定位新视图控制器对象的代码; 请参阅“在启动时还原视图控制器”。可选 使用编码器实现EncodeRestorableStates:和 decodeRestorableStateWithCoder:对任何 在后续启动期间无法重新创建的状态信息; 请参阅“编码和解码视图控制器的状态”

除了应用程序的视图控制器和 视图,UIKit为您提供了用于保存任何杂项数据的挂钩 你的应用程序需要的。具体来说,UIApplicationLegate协议 包括以下要覆盖的方法:

application:willEncodeRestorableStateWithCoder:
application:didDecodeRestorableStateWithCoder:

可能重复可能重复亲爱的:我看到了文档&很多材料,但没有成功,请通知我如何做。通常,在你的答案中包含一些信息,而不仅仅是一个链接,这样做很好,如果链接断了,仍然会有一些有用的东西。我刚刚修复了链接:亲爱的:我看到了文档&有很多资料,但是没有成功,请通知我怎么做。通常,在你的答案中包含一些信息,而不仅仅是一个链接是很好的,这样,如果链接断了,就会出现错误
还有一些有用的东西。我刚刚修复了链接: