最近iOSアプリを作っているので、このブログでもそろそろ Objective-C ネタを出していこうかと思います(*゚∀゚)っ

objective-c

ということで、今回は viewDidLoad や viewWIllDisappearなどの呼ばれるタイミングを見ていきましょうか。それぞれが呼ばれるのはこういうときですよね。

viewDidLoad:インスタンス化された直後(初回に一度のみ)
viewWillAppear:画面が表示される直前
viewDidAppear:画面が表示された直後
viewWillDisappear:別の画面に遷移する直前
viewDidDisappear:別の画面に遷移した直後

さて、試してみるためにStoryboard でこんな感じの単純な遷移を作ってみました。

Storyboardでの簡単な遷移
※最初 ViewController にいて、Next っていうボタンをタップすると NextViewController に遷移


1) 起動したとき

まず、起動時( ViewController が表示される)には以下の順番で呼ばれます。これはわかりやすいですよね。

ViewController viewDidLoad
ViewController viewWillAppear
ViewController viewDidAppear


2) Nextボタンをタップして遷移したとき

次に、ViewController から NextViewController に遷移したときには以下の順番で呼ばれます。

NextViewController viewDidLoad
ViewController viewWillDisappear
NextViewController viewWillAppear
ViewController viewDidDisappear
NextViewController viewDidAppear


3) 戻ったとき

最後に、そこからナビゲーションバーの戻るで戻ってみましょう。このときは ViewController のviewDidLoad はもうすでに呼ばれているため、呼ばれません。

NextViewController viewWillDisappear
ViewController viewWillAppear
NextViewController viewDidDisappear
ViewController viewDidAppear

viewDidLoad が最初なのと、複数の UIViewController が交互に呼ばれてるのが自分的にはちょっと意外でした。これからもときどき見直そうっと :)
このエントリーをはてなブックマークに追加