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の時点でインスタンス化されます。
以下の記事では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の時点でインスタンス化されます。
コメント
コメントを投稿