現在、次の方法でナビゲーション スタックをセットアップしています。
ViewController A-> ViewController B-> ViewController C->ViewController D
ViewControllerC との両方の実装コードにはViewController D、次のテストが満たされた場合にのみコード ブロックを実行するセレクターがあります。
if (self.navigationController.visibleViewController)
私が直面している問題は、上記のテストが に対して常に true を返すことですViewController C。まず、IOS シミュレーターでアプリケーションを起動し、View Controller D までスタックをナビゲートします。ViewController Dロードしたら、シミュレーターの「ホーム」ボタンを押します。ホームボタンを押した後、アプリをもう一度クリックして、アプリケーションを再起動します (フォアグラウンドに入ります)。今起こっていることは奇妙です。私に見えるViewController DView Controllerは です。それは私が最後にいたView Controllerだからです。ViewController D現在、私に見える唯一のView Controllerですが、上記のifステートメントもtrueを返していViewController Cます! ViewController D's(セレクターコードのみを実行したいのですが、これは問題です)。
したがって、これは質問を投げかけます. であるとは正確にはどういう意味ですか?また、私の前に表示されるView Controllerである場合にセレクターが実行されないようvisibleViewControllerにするにはどうすればよいですか..ありがとう!ViewController C'sViewController D