ViewController的生命周期

1、init里不要出现创建view的代码。良好的设计,在init里应该只有相关数据的初始化,而且这些数据都是比较关键的数据。init里不要调self.view,否则会导致viewcontroller创建view。(因为view是懒init的)。

2、loadView中只初始化view,一般用于创建比较关键的view如tableViewController的tabView,UINavigationController的navgationBar,不可调用view的getter(在调super loadView前),最好也不要初始化一些非关键的view。如果是从nib文件中创建的viewController在这里一定要首先调用super的loadView方法,但建议不要重载这个方法。

3、viewDidLoad 这时候view已经有了,最适合创建一些附加的view和控件了。有一点需要注意的是,viewDidLoad会调用多次(viewcontroller可能多次载入view)。

4、viewWillAppear 这个一般在view被添加到superview之前,切换动画之前调用。在这里可以进行一些显示前的处理。比如键盘弹出,一些特殊的过程动画(比如状态条和navigationbar颜色)。

5、viewDidAppear 一般用于显示后,在切换动画后,如果有需要的操作,可以在这里加入相关代码。

6、viewDidUnload 这时候viewController的view已经是nil了。由于这一般发生在内存警告时,所以在这里你应该将那些不在显示的view释放了。比如你在viewcontroller的view上加了一个label,而且这个label是viewcontroller的属性,那么你要把这个属性设置成nil,以免占用不必要的内存,而这个label在viewDidLoad时会重新创建。


init: 开始初始化相应的ViewController

loadView:创建视图控制器(如果不是从.xib加载)

viewDidLoad:视图已加载(一般初始化必要的数据)

viewWillAppear:视图加载前运行

viewWillDisappear:视图消失前(被关闭或覆盖)运行

willRotateToInterfaceOrientation:duration:开始旋转时运行

didRotateToInterfaceOrientation:旋转结束时运行


loadViewviewDidLoad的区别:

loadView在视图初始化的时候调用,应用开启后只调用一次

viewDidLoad在每次进入一个视图的时候都会调用



- (void)didReceiveMemoryWarning

当系统内存警告的时候调用的方法,我们一般在该方法释放消耗资源的对象。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 

用于处理屏幕旋转的方法。

- (void)viewDidUnload 

视图对象卸载的使用调用的方法,一般在把内存视图中的属性设置为nil值。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值