0

私はiOS6の新しい状態復元機能に一歩踏み出そうとしています。Storyboardを使用する既存のTabBarベースのアプリがあります。ルートタブバーの復元IDと、ストーリーボードによって読み込まれる各トップレベルのビューコントローラー(埋め込みナビゲーションコントローラーを含む)を設定しました。

アプリデリゲートオプションを介してオプトインします。次に、別のタブバービューを選択し、バックグラウンドに送信してXcode経由で停止し、再起動すると、次の動作が発生します。

期待どおりに以前に選択した画面で起動しますが、しばらくするとメイン(ホーム)画面に切り替わります。

ルートコントローラーをタブバーコントローラーの場合に設定するだけで、選択したインデックスがコードなしで復元されることを理解していました。

タブバーコントローラーテンプレートを使用して新しいプロジェクトを作成した場合、これは問題なく機能します。つまり、選択したコントローラーを復元し、この選択を維持します。

一般的な起動オプション全体をコメントアウトしようとしましたが、ビュー全体が読み込まれました/何らかの影響があると考えてホームビューコントローラーに表示されましたが、結果は同じでした。

これをさらにデバッグするための良い方法は何でしょうか?注:ViewController固有の状態変更は実装していません。この場合、私は単に最後に選択したビューを開始点として覚えようとしているだけです。ステップアウトポイントとしてさまざまなビューを試しましたが、結果は同じです。最後のビューが起動時に短時間表示された後、ホーム画面に切り替わります。

ちなみに、WWDC 2012ビデオは、現在機能していない状態の復元をテストするために強制終了することを示していることに気づきました。ドキュメントによると、これは状態をクリアし、それが私の経験です。ドキュメントで推奨されているように、Xcodeを介して停止しています。

4

1 に答える 1

0

次のオプトイン方法の戻り値を一時的に no に設定していたことを忘れていました。私の間違い。これを NO に設定すると、最後の画面に一時的にフラッシュが返されるのは興味深いことですが…

-(BOOL)application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder {

return YES;

}

于 2012-10-11T15:55:35.723 に答える