UITabBarController的?生命周期演?示@implementation YYbaseViewController
//當控制器的view加載完畢就調?用- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%@ -控制器的view加載完畢", [self class]); }
//控制器即將顯?示的時候調?用
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:YES];
NSLog(@"%@ -控制器即將顯?示", [self class]); }
//控制器完全顯?示的時候調?用
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"%@ -控制器完全顯?示", [self class]); }
//控制器即將消失的時候調?用
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
NSLog(@"%@ -控制器即將消失", [self class]); }
//控制器完全消失的時候調?用
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
NSLog(@"%@ -控制器完全消失", [self class]); }
- (void)viewWillUnload {
[super viewWillUnload];
NSLog(@"%@ - view即將被銷毀", [self class]); }
- (void)viewDidUnload {
[super viewDidUnload];NSLog(@"%@ - view完全被銷毀", [self class]); }
- (void)dealloc {
NSLog(@"%@", [self class]); }
@end
啟動運?行完成后只會加載第?一個添加控制器的view 順序是第?一個控制器view加載完畢 控制器即將顯?示
控制器已經顯?示
點擊第?二個后
第?個控制器view加載完畢
第二個控制器即將顯?示
第?個控制器即將消失
第一個控制器完全消失
第二個控制器完全顯?示
說明:先把第?一個view移開,再把新的view添加上去,但是第?一個view并沒有被銷 毀。
在點擊第?一個時(上?一次加載過之后并沒調?用銷毀?方法 所以再次點擊是 不?用再次加載了)
第?個控制器即將顯?示
第二個控制器即將顯?示
第?二個控制器完全消
第一個控制器完全顯?示
注意:先重新切換到消息界?面,one控制器直接即將顯?示,沒有進?行加 載證明了(2)中第?一個view移除后并沒有被銷毀(因為它的控制器還存
在,有?一個強引?用引?用著它),且two的view移除后也沒有被銷毀。?無論 怎么切換,控制器和view都不會被銷毀。UINavigationController和UITabBarController?一個通過棧來管理,?一個通過 普通的數組來進?行管理。