答えて

2

viewWillDisappear:animated:は、ナビゲーションスタックからポップされる前にビューコントローラで呼び出されます。

これは、ユーザーがナビゲーションコントローラで「戻る」と移動するときに行う必要がある操作です。ナビゲーションスタック内の他のコントローラにアクセスするには、(スタックに現在あるすべてのビューコントローラの配列で、ルートビューコントローラはインデックス0)にアクセスします。

+1

'viewWillDisappear:'に問題があり、関連するメソッドが 'UINavigationController'の中で常に呼び出されるとは限りません。 navControllerのdelegateに 'navigationController:willShowViewController:animated:'を実装させ、表示されているView Controller上でカスタムメソッドを呼び出すことをお勧めします。 –

+0

ナビゲーションコントローラのスタックに興味があります。しかし、例として、View Controllerのインデックス3を呼び出してインデックス2に戻ると、私が作成してtrueに設定したboolの値は失われますか?それとも、親ビューに戻った後も引き続き検索できますか?あるいは、子ではなく、親からのみ変数を取得できますか? –

+1

上記の方法で親コントローラに渡します。もっと普通のことですが、親ビューコントローラは、新しいコントローラが変更した何らかの種類の「詳細」オブジェクト(管理対象オブジェクトまたは辞書)を渡してしまったため、何かを戻す必要はありません。 – jrturton

2

ビューコントローラにviewWillAppear,viewDidAppearviewWillDisappearviewDidDisappearを使用できます。これはUINavigationControllerとは独立して動作します。

+0

私はviewWillDisappear 'に問題があった:' 'と常にUINavigationController'内部で呼び出されていないメソッドを関連します。 navControllerのdelegateに 'navigationController:willShowViewController:animated:'を実装させ、表示されているView Controller上でカスタムメソッドを呼び出すことをお勧めします。 –

関連する問題