iOS view生命周期

一、view生命周期

1、loadView

loadView方法负责创建UIViewController的view,每次访问UIViewController的view,比如controller.view、self.view,且view为nil,就会调用loadView方法。

关于[super loadView]中的默认实现:(1)首先去查找与UIViewController相关联的xib文件,通过加载xib文件来创建UIViewController的view;(2)如果没有找到关联的xib文件,就会创建一个空白的UIView,然后赋值给UIViewController的view属性。

2、viewDidLoad

loadView完成view创建后,会调用此方法,一般来说,我们会在此处进行初始化的相关操作。

3、viewWillAppear

试图即将出现。

4、viewWillLayoutSubviews

建议布局试图在此处进行,这个方法会对所有试图进行真正的布局,包括self.view。

大部分情况下试图的布局代码写在viewDidLoad中没有问题,因为最终也是到这里进行布局操作的;但是少数情况下,这会导致一些奇怪的问题,尤其对于XIB而言,因为在 viewDidLoad 和 viewWillAppear 中,试图还是默认XIB的大小,在此方法中才会布局正确。

5、viewDidLayoutSubviews

试图布局完成。

6、viewDidAppear

试图已经出现。

7、viewWillDisappear

试图即将消失。

8、viewDidDisappear

试图已经消失。

9、viewDidUnload

这个比较特殊。

设备的内存是有限的,如果应用程序占用的内存过多,系统就会对应用程序发出内存警告,UIViewController就会收到didReceiveMemoryWarning消息。

didReceiveMemoryWarning方法的默认实现是:如果当前UIViewController的view不在应用程序的视图层次结构(View Hierarchy)中,即view的superview为nil的时候,就会将view释放,并且调用viewDidUnload方法。

所以一般在释放资源,主要是释放界面元素相关的资源,将相关的实例都赋值为nil

- (void)viewDidUnload {
     [super viewDidUnload];
     self.name = nil;
     self.pwd = nil;
 }

二、xib

1、initWithCoder:

将引用和内容文件从xib文件中加载到内存中

2、setValue:forKey:

将outlet中制定的各个新属性

3、addTarget:action:forControlEvents:

将xib中定制的手势交互等方法进行处理

4、bind:toObject:withKeyPath:options:

连接对象

5、awakeFromNib

加载完毕。

转载于:https://my.oschina.net/Jerod/blog/2998518

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值