2013-03-22 46 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

相關問題