0

私のアプリの概要

- ナビゲーション コントローラーを使用している間は、対応する XIB MainWindow.xib にあります。アプリ デリゲートでルート VC として設定されます。

-CategoriesVC はテーブル VC であり、ルート VC のトップ VC です。

-BooksCategoryVC (カテゴリ内のすべての本) は、CategoriesVC から何かを選択した後にプッシュされる別のテーブル vc です。

-BookScrollVC.m は、本を選択した後にテキストを表示するスクロール VC です。

コードの説明

1) アプリのデリゲートで、 shouldSaveApplicationState と shouldRestoreApplicationState を設定して YES を返すようにしました

2) CategoriesVC は MainWindow XIB にあり、IB と .m に復元識別子を設定しました。restoreClass を self に設定し、viewControllerWithRestoreIdentifierPath を実装しました。

3) BooksCategory には独自の XIB があり、復元プロトコルを実装しています。

4) VC がコードでインスタンス化されることを除いて、3) と同じ。ここには XIB はありません。

フロー

アプリケーションを起動します。最後の VC (BookScrollVC) までナビゲートします。

シミュレーターでホームボタンを押すと:

encodeRestorableStateWithCoder CategoriesVC で呼び出され、他の VC には進みません。復元プロトコルを実装しているすべての VC を経由するべきではないですか?

Xcode からアプリを再起動すると、実際viewControllerWithRestorationIdentifierPathには CategoriesVC 内の のみが呼び出されます。

不明な点やコードを確認したい場合はお知らせください

4

1 に答える 1

0

解決

復元識別子が設定されていない場合、アプリは復元できません。カスタム初期化子でそれらを設定しましたが、機能していないようです。解決策は、プッシュされる前に、次の VC で復元識別子を設定することでした。

これに飛び込んで、より良い解決策があるかどうかを確認する必要があります。

于 2013-06-09T10:24:42.403 に答える