簡體   English   中英

iOS中的狀態恢復

[英]state restoration in iOS

我正在存儲我的應用程序屏幕,以便在應用程序打開時它將顯示已存儲的屏幕。 該應用程序是基於導航的。

我已將Restoration Ids分配給主故事板中的兩個視圖控制器。 第一個控制器是導航控制器的根視圖控制器。 我還為導航控制器分配了Restoration Id。 現在問題是當我運行應用程序時,我收到以下警告:

無法創建正在進行的恢復標記文件。

不確定還需要做什么。

之前我有同樣的警告並通過以下方式修復它。

我在使用故事板。 我的故事板只包括導航視圖控制器和視圖控制器(該導航視圖控制器的根視圖控制器)。 在我的情況下,它是由兩個原因之一引起的:

未正確設置應用程序以進行狀態保存需要設置以下內容:

  1. 在app delegate中,覆蓋應用程序:willFinishLaunching。 可以在該方法中簡單地返回YES。

  2. 對於每個視圖控制器和視圖(包括導航視圖控制器和選項卡視圖控制器),請設置還原ID

  3. 在app delegate中,通過覆蓋shouldSaveApplicationStateshouldRestoreApplicationState選擇加入

如果仍然出現此警告,您可以檢查在Xcode中如何運行應用程序。 我在Xcode模擬器中運行我的應用程序,並且必須遵循特定的順序來觸發狀態保存。

  • 在Xcode模擬器中啟動應用程序
  • 在Xcode模擬器中,單擊“ 主頁 ”按鈕將應用程序放入后台。 應該調用視圖控制器的encodeRestorableStateWithCoder方法
  • 返回Xcode,單擊“ 停止 ”按鈕終止模擬
  • 在Xcode模擬器中,雙擊“主頁”按鈕,然后從應用程序切換器中刪除應用程序
  • 回到Xcode,再次運行應用程序。

不應該出現這個警告。 當我使用其他序列時,我看到出現了警告。 當我使用Xcode在我的設備上調試我的應用程序時,我按照相同的順序,沒有看到警告。

我認為該警告表明,由於Xcode無法正確終止應用程序,因此狀態恢復文件未正確保存到磁盤上。

嘗試為您的View提供恢復ID。 您可以這樣做以打開xib或故事板並將ID分配給View Controller。

在此輸入圖像描述

更多詳情: http//useyourloaf.com/blog/2013/05/21/state-preservation-and-restoration.html

模擬器:

  • 這在應用程序編碼時首次出現在模擬器上。 (不知道為什么)
  • 隨后的時間不會顯示此警告。

設備:

嘗試在設備上運行。

  1. 在設備上運行
  2. 轉到主屏幕。
  3. 停止在Xcode上運行
  4. 從應用切換器中刪除應用
  5. 再次在設備上運行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM