私はナビゲーションコントローラーを使用します.6つのナビゲーションコントローラーがあります.アプリに状態を保存させ、アプリケーションが終了した最後の画面を復元させたい. 再度起動したときに開くに
は、任意のビューでそれを行うために使用する必要があるコードは何ですか。
1 に答える
Apple はこれを行うメカニズムを提供しています: https://developer.apple.com/documentation/uikit/view_controllers/preserving_your_app_s_ui_across_launches?language=objc
リンクからの重要なビット:
状態の保存と復元は自動機能ではなく、アプリで使用するにはオプトインする必要があります。アプリは、アプリ デリゲートで次のメソッドを実装することにより、機能のサポートを示します。
application:shouldSaveApplicationState: application:shouldRestoreApplicationState:
通常、これらのメソッドの実装は YES を返すだけで、状態の保存と復元が可能であることを示します。ただし、状態を条件付きで保存および復元する必要があるアプリは、操作が発生してはならない状況で NO を返す可能性があります。たとえば、アプリの更新をリリースした後、アプリが以前のバージョンから状態を有効に復元できない場合は、application:shouldRestoreApplicationState: メソッドから NO を返したい場合があります。
View Controller の状態を保持する
アプリのビュー コントローラーの状態を保持することが主な目標です。ビュー コントローラーは、ユーザー インターフェイスの構造を定義します。それらは、そのインターフェイスを表示するために必要なビューを管理し、それらのビューをサポートするデータの取得と設定を調整します。1 つのビュー コントローラーの状態を保持するには、次の操作を行う必要があります。
(必須) View Controller に復元識別子を割り当てます。「保存用にView Controllerをマークする」を参照してください。(必須) 起動時に新しいView Controllerオブジェクトを作成または検索するためのコードを提供します。「起動時にView Controllerを復元する」を参照してください。(オプション) encodeRestorableStateWithCoder: および decodeRestorableStateWithCoder: メソッドを実装して、後続の起動時に再作成できない状態情報をエンコードおよび復元します。「View Controller の状態のエンコードとデコード」を参照してください。</p>
アプリのビュー コントローラーとビューによって保持されるデータに加えて、UIKit は、アプリに必要なさまざまなデータを保存するためのフックを提供します。具体的には、UIApplicationDelegate プロトコルには、オーバーライドできる次のメソッドが含まれています。
application:willEncodeRestorableStateWithCoder: application:didDecodeRestorableStateWithCoder: