【Obj-C】UIViewController ライフサイクル viewDidLoad viewWillAppear viewDidAppear viewWillDisappear viewDidDisappear

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

 

タイトルとURLをコピーしました