LoadView And ViewDidLoad

创建视图控制器(ViewController),在视图控制器的.m文件里,我们会看到viewDidLoad方法,这个方法就是当视图加载后调用,在里面我们可以加载一些页面需要的控件、初始化本视图控制器的成员变量或属性。在更早版本还有一个常用的方法loadView方法。

区别:

  • loadView:当view需要被展示而它却是nil时,viewContrller会调用该方法;使用代码生成视图的时候,当视图第一次载入的时候调用的方法。
  • 在控制器中实现了loadView方法,那么可能会在应用运行的某个时候被内存管理控制器调用。如果设备内存不足的时候,视图控制器会收到didReceiveMemoryWarning的消息。默认的实现是检查当前控制器的view是否在使用。如果它的view不在当前正在使用的视图里面,且你的控制器实现了loadView方法,那么这个view将被release,loadView方法将被再次调用来创建一个新的view;
  • 不管有没有nib文件,只要复写了loadView,loadView都会被执行;有nib文件的话,加载的是nib文件的view,没有的话会按照loadView里地代码加载,也就是说程序先会执行loadView方法,然后再去加载nib文件。
  • viewDidLoad:在视图加载后被调用,如果是在代码中创建的视图加载器,它将会在loadView方法后被调用,如果是从nib视图页面输出,它将会在视图设置好后被调用。
在使用viewDidLoad和loadView方法的时候,需注意:
  • viewDidLoad:无论通过什么途径加载完view后肯定会执行这个方法。这个函数在Controller加载了相关的views后被调用,而不论这些views存储在nib文件里还是在loadView函数生产,而多数情况下是做nib文件的后续工作
  • loadView:当通过Xcode实例化一个类的时候就需要自己在Controller中实现这个方法,而在IBZ中实例化就不需要实现它。永远不要主动调用这个函数,viewController会再view的property被请求并且当前view值为nil时调用这个函数。如果你手动创建view,你应该重载这个函数。如果你用IB创建view并初始化viewController,那就意味着你使用initWithNibName:bundle:方法,这时你不应该重载loadView函数。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值