2017-05-22 29 views
0

私はいくつかのビューコントローラが内部にあるナビゲーションコントローラを持っています。iOS - 状態の復元 - 以前に復元されたビューコントローラを取得する

application(_:viewControllerWithRestorationIdentifierPath:coder:)メソッドを復元すると、最初に各コントローラを1つずつ順番に呼び出す一方で、最初にスタックし、次に2番目に続きます。 2番目のビューコントローラを復元するときに、最初のビューコントローラへの参照を取得する必要があります(それらの間にいくつかの接続を作成する必要があります)。

このコントローラーをこのアプリケーションのどこかに保存せずに、以前に復元したコントローラーを取得する方法はありますか? (同じことがナビゲーションコントローラに関するものです)

答えて

0

私が理解していることは、アプリケーションがバックグラウンドで送信される前に最後に表示されたView Controllerだけが、エンコード/ NSCoderを使用して上記のデコード方法を実行します。 でも、自分のデータを保存する必要があります(例: NSKeyedArchiverまたはコアデータを使用して、アプリケーションがユーザーによって終了された場合、またはデバイスが再起動された場合これは、あなたの場合に最適なソリューションかもしれません。

ここencodeRestorableStateため

参照リンク:

https://developer.apple.com/documentation/uikit/uiviewcontroller/1621461-encoderestorablestate

具体的には、こう述べています。

この方法は、ディスクに永続的に、アプリケーションのデータ 構造を保存するための代替ではありません。既存の 技術を使用して、 アプリの実際のデータをiCloudまたはローカルファイルシステムに保存し続ける必要があります。このメソッドは、コンフィグレーション の状態や、あなたのアプリケーションのユーザーインターフェイスに関するその他の情報を保存するためのものです。 は、コーダーに書き込むデータをパージ可能と見なし、その後の起動時に利用できないように に準備する必要があります。

関連する問題