viewDidLoad和loadView和viewWillAppear的区别

相信大家在学习ios的过程中,肯定会遇到这些方法,现在我来讲讲这些方法的区别。

我们先来了解每个方法的作用:

viewDidLoad-加载视图;

viewWillAppear-VC对象的视图即将加入窗口时调用;

viewDidAppear-VC对象的视图已经加入窗口时调用;

viewWillDisappear-VC对象的视图即将消失,被覆盖或是隐藏时调用;

viewDidDisappear-VC对象的视图已经消失,被覆盖或是隐藏时调用;

viewWillUnload-当内存过低时,需要释放一些不需要使用的视图时,即将释放时调用;

viewDidUnload-当内存过低时,需要释放一些不需要的视图时调用;


其实,视图是通过alloc和init创建的,在创建的时候并不是立刻就创建出来,而是等到需要的时候才会通过loadView去创建相应的视图,这样的做法可以提高使用率。


写了个程序,测试一下运行的效果:

- (void)viewWillUnload {
    [super viewWillUnload];

    NSLog(@"viewWillUnload");
}

- (void)viewDidUnload {
    [super viewDidUnload];
    
    NSLog(@"viewDidUnload");
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSLog(@"viewDidLoad");
}

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    
    NSLog(@"viewWillAppear");
}

- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];

    NSLog(@"viewWillDisappear");
}

- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];

    NSLog(@"viewDidAppear");
}

- (void)viewDidDisappear:(BOOL)animated{
    [super viewDidDisappear:animated];

    NSLog(@"viewDidDisappear");
}

运行结果如下:





忘了个init,正常的顺序应该是init,viewDidLoad,viewWillAppear,最后才是viewDidAppear;

当视图创建好了以后,视图要消失或者覆盖掉了的时候,会调用viewWillDisappear,viewDidDisappear;

当发出内存警告的时候,会调用viewWillUnload,viewDidUnload;



-------分割线---------


注意:ViewDidLoad是程序第一次加载view的时候调用,以后都不会用到,而viewDidAppear是每切换到view时就调用;

loadView在控制器的view为nil的时候被调用,创建view的时候调用;






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值