2013-03-22 38 views
-1

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

+0

可能重复http://stackoverflow.com/questions/12718341/ios-6-saving-restoring-app-state-feature – iPatel 2013-03-22 16:44:11

回答

3

苹果提供的机制来做到这一点:http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/StatePreservation/StatePreservation.html

从链接的重要位:

状态保存和恢复不是自动功能和 应用程序必须进行选择使用它。应用表明他们对 功能,通过实现他们的应用程序代理以下方法支持:您的这些方法的实现仅仅是返回

application:shouldSaveApplicationState: 
application:shouldRestoreApplicationState: 

通常情况下,表明状态保存和恢复可能发生。但是, 应用程序需要有条件地保留和恢复其状态 在操作不应该发生的情况下返回NO。对于 示例,在向您的应用发布更新后,如果您的应用无法从以前的 版本有效恢复状态,则可能需要 从您的应用返回NO:shouldRestoreApplicationState:方法 。

保留您的视图控制器

的保留您的应用程序的视图控制器应该是你 主要目标的状态的状态。视图控制器定义您的用户界面的结构。他们管理呈现该界面所需的视图,并协调获取和设置支持那些 视图的数据。要保留单个视图控制器的状态,您必须执行以下操作:

(必需)为视图控制器分配恢复标识符;请参阅 “标记您的视图控制器以进行保存”。(必需)提供 代码以在启动时创建或查找新的视图控制器对象; 请参阅“在启动时恢复视图控制器”。(可选) 实现encodeRestorableStateWithCoder:和 decodeRestorableStateWithCoder:方法来编码和恢复在后续启动期间无法重新创建的任何 状态信息; 见“编码和解码你的视图控制器的状态。”

除了通过您的应用程序的视图控制器和 视图保存数据,UIKit的提供了钩子,为您节省您的应用所需的任何其它数据 。具体而言,UIApplicationDelegate协议 包括以下方法为您覆盖:

application:willEncodeRestorableStateWithCoder: 
application:didDecodeRestorableStateWithCoder: 
+0

亲爱的:我看到的文档和很多材料,但这不成功,请通知我如何做到这一点 – EBRAHIM 2013-03-22 17:12:23

+0

我。e我该如何实施并添加到我的代码 – EBRAHIM 2013-03-22 17:12:51

+0

通常很高兴在您的答案中包含一些信息,而不仅仅是一个链接,这样如果链接断开(并且会),仍然有帮助。 – 2013-03-23 15:09:00

相关问题