iOS中狀態(tài)復(fù)原功能的實(shí)現(xiàn)

狀態(tài)復(fù)原

英文術(shù)語: State Restoration
蘋果官方示例

應(yīng)用場景: 當(dāng)應(yīng)用退入后臺(tái), 把視圖控制器的層級(jí)保存, 如果因?yàn)閮?nèi)存等問題, 應(yīng)用被關(guān)閉了, 那么下次打開應(yīng)用的時(shí)候, 按照保存的恢復(fù), 讓用戶看上去app仿佛從來沒有被關(guān)閉一樣.

需要實(shí)現(xiàn)的方法:

  1. 在AppDelegate里

func application(application: UIApplication, shouldRestoreApplicationState coder: NSCoder) -> Bool {
return true
}
func application(application: UIApplication, shouldSaveApplicationState coder: NSCoder) -> Bool {
return true
}

  1. 對(duì)所有的viewController, 所有的view 設(shè)置其Restoration ID, 如果不是使用設(shè)計(jì)器而是用代碼實(shí)現(xiàn)的話, 需要實(shí)現(xiàn)UIViewControllerRestoration協(xié)議

  2. 在每個(gè)viewController里實(shí)現(xiàn)方法:

override func encodeRestorableStateWithCoder(coder: NSCoder)
override func decodeRestorableStateWithCoder(coder: NSCoder)
這個(gè)方法會(huì)在viewDidLoad方法之后調(diào)用, 所以怎么用, 你懂的.

調(diào)試方法

  1. 在Xcode里運(yùn)行app
  2. 在模擬器/設(shè)備里用home鍵切回桌面
  3. 在Xcode里stop運(yùn)行
  4. 在Xode里面run
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容