iOS8のTabViewControllerでのViewがLoadされるタイミング

iOS8ではViewがLoadのされるタイミングが少し変更されているようです。

以下の記事ではSegue実行時の流れを調べました。
http://samekard.blogspot.jp/2012/03/storyboard.html
この記事では次のように書きました。

1 performSegueWithIdentifier開始
2 新しいViewControllerのインスタンス化(initなど)
3 prepareForSegue開始
4 prepareForSegue終了
5 UIKitのインスタンス化、画面回転メソッドの呼び出し、viewDidLoadなど
6 performSegueWithIdentifier終了

iOS8でも移行先のViewControllerがシンプルなものであればこの通りなのですが、TabBarControllerの初めに表示されるViewControllerの場合はこのようになります。
4 prepareForSegue終了
5 performSegueWithIdentifier終了
6 UIKitのインスタンス化、画面回転メソッドの呼び出し、viewDidLoadなど
(2番目移行に表示されるViewControllerは表示の直前でViewをLoadします)

TabViewControllerに乗っている各ViewControllerのViewはperformSegueWithIdentifierより後でインスタンス化するようです。ちなみにViewController自体は2の時点でインスタンス化されます。

コメント