iPhone開発 UIViewController ライフサイクル
iPhone ios objective-c サンプル
UIViewController ライフサイクル と 呼び出されるメソッド
view 表示時に UIViewController を継承したクラス内で下記のメソッドが順番に呼ばれます。
それぞれの呼ばれるタイミングにて適切な処理をしましょう。
また、アプリがバックグラウンドへ移動した場合や、他のアプリ、他の機能にてViewがメモリから削除された場合は、再度 viewDidLoad が実行されます。
ライフサイクル
■ init(インスタンス作成時に呼び出したイニシャライザ)
↓
■ viewDidLoad
・View が初めて呼び出される時に1回だけ呼ばれます。
・アプリ起動後に初めて当Viewが表示された場合に1度だけ呼ばれます。
↓
■ viewWillAppear
・View が表示される直前に呼ばれるメソッド
・タブ等の切り替え等により、画面に表示されるたびに呼び出されます。
・タブが切り替わるたびに何度でも呼ばれます。
↓
■ viewDidAppear
・View の表示が完了後に呼び出されるメッソド
・タブ等の切り替え等により、画面に表示されるたびに呼び出されます。
・タブが切り替わるたびに何度でも呼ばれます。
↓
■ viewWillDisappear
・View が他のView (画面から消える) 直前に呼び出されるメッソド
・View が他のView (画面から消える) 直前に呼び出されるメッソド
・タブが切り替わるたびに何度でも呼ばれます。
↓
■ viewDidDisappear
・View が他のView (画面から消えた) 非表示後に呼び出されるメッソド
・View が他のView (画面から消える) 直前に呼び出されるメッソド
・タブが切り替わるたびに何度でも呼ばれます。
サンプル
#import "ViewController.h" @implementation ViewController - (void)viewDidLoad { NSLog(@"viewDidLoad"); } - (void)viewWillAppear:(BOOL)animated { NSLog(@"viewWillAppear"); [super viewWillAppear:animated]; } - (void)viewDidAppear:(BOOL)animated { NSLog(@"viewDidAppear"); [super viewDidAppear:animated]; } - (void)viewWillDisappear:(BOOL)animated { NSLog(@"viewWillDisappear"); [super viewWillDisappear:animated]; } - (void)viewDidDisappear:(BOOL)animated { NSLog(@"viewDidDisappear"); [super viewDidDisappear:animated]; }
ログ
初期表示時 2012-06-03 15:37:57.688 TaSample[6366:f803] viewDidLoad 2012-06-03 15:37:57.693 TaSample[6366:f803] viewWillAppear 2012-06-03 15:37:57.703 TaSample[6366:f803] viewDidAppear 他のタブへ切り替え 2012-06-03 15:38:09.420 TaSample[6366:f803] viewWillDisappear 2012-06-03 15:38:09.422 TaSample[6366:f803] viewDidDisappear 元のタブを表示 2012-06-03 15:38:20.384 TaSample[6366:f803] viewWillAppear 2012-06-03 15:38:20.385 TaSample[6366:f803] viewDidAppear