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⼀一个通过栈来管理,⼀一个通过 普通的数组来进⾏行管理。