ViewController Life-Cycle


https://zeddios.tistory.com/43
https://zeddios.tistory.com/44
上のZeddの文章の画像の内容を見てみましょう.1番目のビューコントローラから2番目のビューコントローラに移動し、1番目のビューコントローラに移動するときに呼び出される関数の順序が表示されます.次の内容を読む前にviewDidLoadがメモリにアップロードされたときに呼び出されることを覚えておいてください.
1st viewDidLoad
1st viewWillAppear
1st viewDidAppear
========================
1st viewWillDisappear
2nd viewDidLoad
2nd viewWillAppear
1st viewDidDisappear
2nd viewDidAppear
========================
2nd viewWillDisappear
1st viewWillAppear
2nd viewDidDisappear
1st viewDidAppear
各ビューコントローラを切り取り、次のように整理します.
첫 번째 View Controller

1st viewDidLoad
1st viewWillAppear
1st viewDidAppear
1st viewWillDisappear
1st viewDidDisappear
1st viewWillAppear
1st viewDidAppear

두 번째 View Controller

2nd viewDidLoad
2nd viewWillAppear
2nd viewDidAppear
2nd viewWillDisappear
2nd viewDidDisappear

ループは、通常、上述した画像のviewDidLoadおよびviewDidDisplaceの順に繰り返される.よく観察すると必ずしもそうではない.最初のビューコントローラのViewDidLoadは一度だけ表示されます.パターンをもっとはっきり見たいし、2番目のViewController呼び出しViewDidLoadも見たいので再試行しました.最初のビューコントローラから2番目のビューコントローラに移動し、戻ってチェックを繰り返します.結果は次のとおりです.
1st viewDidLoad()
1st viewWillAppear()
1st viewDidAppear()
2nd viewDidLoad()
1st viewWillDisappear()
2nd viewWillAppear()
1st viewDidDisappear()
2nd viewDidAppear()
2nd viewWillDisappear()
1st viewWillAppear()
2nd viewDidDisappear()
1st viewDidAppear()
2nd viewDidLoad()
1st viewWillDisappear()
2nd viewWillAppear()
1st viewDidDisappear()
2nd viewDidAppear()
2nd viewWillDisappear()
1st viewWillAppear()
2nd viewDidDisappear()
1st viewDidAppear()
1番目と2番目に分け直しましょう
첫 번째 View Controller

1st viewDidLoad()
1st viewWillAppear()
1st viewDidAppear()
1st viewWillDisappear()
1st viewDidDisappear()
1st viewWillAppear()
1st viewDidAppear()
1st viewWillDisappear()
1st viewDidDisappear()
1st viewWillAppear()
1st viewDidAppear()

두 번째 View Controller

2nd viewDidLoad()
2nd viewWillAppear()
2nd viewDidAppear()
2nd viewWillDisappear()
2nd viewDidDisappear()
2nd viewDidLoad()
2nd viewWillAppear()
2nd viewDidAppear()
2nd viewWillDisappear()
2nd viewDidDisappear()
1番目のViewControllerのみが1回だけViewDidLoadを出力し、2番目のViewControllerに移動するたびにViewDidLoadが呼び出されます.Navigation Barを知ってから知ることができます.これは、2番目のビューコントローラが消失するとメモリから消失する静的構造で、2番目のビューコントローラに再び移動するとメモリに戻され、ViewDiLoadが呼び出されます.pushやpopを思い出すと分かりやすいはずです.ライフサイクルを理解すると、インスタンスの作成と削除を実施してメモリの無駄を回避できます.