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