2

ルートビューコントローラー(R)に、ナビゲーションコントローラー(N)へのセグエをトリガーするボタンがあります。ナビゲーションコントローラー内では、ナビゲーションスタック上のすべてのビューコントローラー(N.0、N.1、N.2、...)を切り替えることができ、これらのすべてのビューコントローラーには、ルートビューにすぐに戻るためのボタンがあります。コントローラー(R)。

これを実現したいのですが、ルートビューコントローラー(R)のボタンを押すたびに、ナビゲーションコントローラー(N)が以前の構成で再び表示されます。例:ナビゲーションコントローラーを閉じる前に最後に表示されていたビューコントローラーが(N.1)だった場合、ナビゲーションコントローラーに(N.1)を再度表示させます。

現在、ルートビューコントローラー(R)からナビゲーションコントローラー(N)へのセグエをトリガーすると、常にナビゲーションルートビューコントローラー(N.0)が表示されます。(iOSは、セグエがトリガーされるたびに新しいナビゲーションコントローラーをインスタンス化しますか?それとも同じオブジェクトですか?)

ナビゲーションコントローラーの状態を保持し、ナビゲーションコントローラーが再度表示されたときに復元するにはどうすればよいですか?

(iOS 6には、この目的に使用できるrestorementIdentifierプロパティがあることを知っています。ただし、iOS 5を実行しているデバイスをアプリでサポートしたいので、iOS 6より前にこの動作を実現する方法があったはずです。)

ストーリーボードのスクリーンショット

4

1 に答える 1

0

セグエは常に、宛先ビュー コントローラーの新しいインスタンスを作成します。おそらくpopToRootViewControllerAnimated:を使用してルート コントローラーに「ジャンプ」すると、ポップされたすべてのビュー コントローラーが破棄されるため、戻るものは何もありません。ビュー コントローラーの Web をナビゲートする場合、UINaviationViewController またはセグエを使用することはできません。

于 2013-03-14T17:17:27.007 に答える