iOS開発をObjective-cで始めたのでわかったことを書こうと思います。
元ネタはこちら
init(インスタンス作成時に呼び出したイニシャライザ)
↓
viewDidLoad
・View が初めて呼び出される時に1回だけ呼ばれます。
・アプリ起動後に初めて当Viewが表示された場合に1度だけ呼ばれます。
↓
viewWillAppear
・View が表示される直前に呼ばれるメソッド
・タブ等の切り替え等により、画面に表示されるたびに呼び出されます。
・タブが切り替わるたびに何度でも呼ばれます。
↓
viewDidAppear
・View の表示が完了後に呼び出されるメッソド
・タブ等の切り替え等により、画面に表示されるたびに呼び出されます。
・タブが切り替わるたびに何度でも呼ばれます。
↓
viewWillDisappear
・View が他のView (画面から消える) 直前に呼び出されるメッソド
・View が他のView (画面から消える) 直前に呼び出されるメッソド
・タブが切り替わるたびに何度でも呼ばれます。
↓
viewDidDisappear
・View が他のView (画面から消えた) 非表示後に呼び出されるメッソド
・View が他のView (画面から消える) 直前に呼び出されるメッソド
・タブが切り替わるたびに何度でも呼ばれます。