2013年1月29日 星期二

View Controller 事件發生順序

轉貼自http://kelp.phate.org/2012/02/view-controller.html

在做切換頁面時,經常需要做特殊處理。

在撰寫 Controller 內的程式時可以把 View 的初始化程式放在 - (void)viewDidLoad 中,但除了 viewDidLoad 外其實還有其他的事件可以利用。
官方文件 - UIViewController Class Reference (Instance Methods)


View 被載入時:

1
2
3
4
5
- (void)viewDidLoad
{
    [super viewDidLoad];
    NSLog(@"viewDidLoad");
}

View 要被呈現前,發生於 viewDidLoad 之後:
1
2
3
4
5
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    NSLog(@"viewWillAppear");
}

View 呈現後,發生於 viewWillAppear 之後:
1
2
3
4
5
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    NSLog(@"viewDidAppear");
}

View 要結束前,要切換到下一個 View 時會發生此事件:
1
2
3
4
5
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    NSLog(@"viewWillDisappear");
}

View 完全結束後,發生於 viewWillDisappear 之後:
1
2
3
4
5
- (void)viewDidDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
    NSLog(@"viewDidDisappear");
}


沒有留言: