7

Navigation Controllerを備えた2つのView Controllerがあります。2番目のものを使用する[self.navigationController popViewControllerAnimated:YES];と、最初のものは開きますが、viewDidLoadのメソッドは呼び出されません。この状況で最初のコントローラーで呼び出されるメソッドは何ですか?

4

2 に答える 2

26

ナビゲーション コントローラーviewWillAppear:は、ビューを画面に表示する前とviewDidAppear:後にビュー コントローラーに送信します。

と の中viewWillAppear:viewDidAppear:、View Controller は をチェックできself.isMovingToParentViewControllerます。isMovingToParentViewControllerがの場合YES、最初にビュー コントローラーがナビゲーション コントローラーに追加されています (おそらく、それがナビゲーション コントローラーのルート ビュー コントローラーであるか、プッシュされているためです)。isMovingToParentViewControllerがの場合NO、ビュー コントローラーは既にナビゲーション コントローラーのスタックにあり、それを表示するために別のビュー コントローラーがポップされています。

クラス リファレンスの「ビュー関連の通知の処理」をUIViewController参照してください。

于 2013-04-05T07:55:35.233 に答える
1

その場合、viewWillAppearメソッドが呼び出されます。

-(void)viewWillAppear:(BOOL)animated
{

}
于 2013-04-05T07:50:39.977 に答える