2016-09-13 3 views
3

私はViewController階層を持ち、UINavigationViewControllerをルートにしています。
ViewControllerが初めて起動されたかどうか、またはナビゲーションスタックの巻き戻しの結果として起動されたかどうかを確認するにはどうすればよいですか?初めてUIViewControllerが起動されたことを確認する方法はありますか?

+0

'viewWillAppear'関数のチェックで、ビューが初めて表示されたかどうか、または他のビューが一度終了したために表示されているかどうかを確認していますか? – rmaddy

+0

@rmaddyがviewWillAppear関数でチェックを行って、これが初めて表示されるかどうかを確認します –

+0

あなたのユースケースは何ですか?私は一般的にあなたのビューコントローラの外であなたの状態を管理し、viewWillAppearで簡単に更新することをお勧めします。 – PeejWeej

答えて

6

ビューコントローラが最初に表示されているか、別のビューコントローラが却下されたので、それが表示されていた場合、あなたは簡単に次の操作を行うことができたときに呼び出されているあなたはviewWillAppear:(またはviewDidAppear:)かどうかを知りたいと仮定:

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated) 

    if isBeingPresented() || isMovingToParentViewController() { 
     // This is the first time this instance of the view controller will appear 
    } else { 
     // This controller is appearing because another was just dismissed 
    } 
} 
0

ナビゲーションスタックで新しいViewControllerをプッシュすると、初めてインスタンス化され、スタックからポップアウトすると、deallocまたは解放されます。あなたが押したり進むと、それは初めてですが、以前のビューコントローラに戻ったときに、現在のVCはすでにメモリに入っていて、初めてではありません!!!

+0

initメソッドが呼び出された場合、これはVCが初めて起動されることを意味しますか? –

+0

ええ、それは言うことができます! – Lion

関連する問題