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