2017-10-02 7 views
0

私は2つのViewControllerを持っています。 FirstViewControllerのボタンを押すと、SecondViewControllerが表示されます。 SecondViewControllerのボタンを押すと、FirstViewControllerが再び表示されます。問題は、FirstViewControllerのビューが再びロードされないことです。 ViewDidLoadループは再度ロードされません。 FirstViewControllerが表示されるたびに変数をチェックするループを作成したいと思います。Xcode Swift ViewDidLoad

+4

[iOS UIViewControllerライフサイクルを理解している](https://stackoverflow.com/questions/5562938/looking-to-understand-the-ios-uiviewcontroller-lifecycle)の可能な複製 –

+0

おそらく '-viewWillAppear(_ :) 'はあなたが望む範囲です。ビューコントローラ(__you are!__)のライフサイクルについてもっと知りたい場合は、[Apple docs about it](https://developer.apple.com/documentation/uikit/uiviewcontroller)を読んでください。 。 – holex

答えて

1

viewDidLoadは、ビューの最初の読み込み時にのみ呼び出されます。表示がちょうど(viewDidAppear)か、(viewWillAppear)と表示されるたびに呼び出されるviewDidAppear(またはviewWillAppear)メソッドを探しているようです。

これらの方法のいずれかを探している可能性があります。あなたはNavgation StackUIViewControllerのインスタンスを追加する際の詳細については、this page上の図で

0

のviewDidLoadメソッド呼び出しを見てみたいことがあります。

私は既にあなたが約Navigation Stackを知っていると仮定しました。

あなたはそれはあなたがFirstViewControllerが既にメモリにロードされているのでFirstViewControllerViewDidLoadを呼び出すことはありません、このようにNavigation StackからあなたSecondViewController 2つの方法

から一つのことをやった意味FirstViewControllerSecondViewControllerから表示。この場合、ViewDidAppearViewWillAppearが実行されます。なぜなら、これらのメソッドは、ビューが画面に表示されるときはいつでも呼び出すからです。

2.あなたはSecondViewControllerFirstViewControllerの別のインスタンスを作成し、Navigation StackFirstViewControllerのインスタンスを押してください。このようにして、FirstViewControllerの新しいインスタンスが追加され、ViewDidLoadが自動的に呼び出されます。 FirstViewControllerSecondViewControllerのループが自動的に作成されます。

ViewDidLoadメソッドがあなたのために呼び出されなかった理由が分かりました。

関連する問題