viewController生命周期

每个view都有一个viewController。且view的生命周期也在viewController里面。所以在view释放之前,viewcontroller是不可以释放的。那viewController的生命周期到底是怎么样的呢?和我一步一步来看吧。

【2016-04-28 14:27:01.622 VCAndView[1317:144026] loadView
2016-04-28 14:27:01.623 VCAndView[1317:144026] viewDidLoad
2016-04-28 14:27:01.627 VCAndView[1317:144026] viewWillAppear
2016-04-28 14:27:01.629 VCAndView[1317:144026] viewWillLayoutSubviews
2016-04-28 14:27:01.630 VCAndView[1317:144026] viewDidLayoutSubviews
2016-04-28 14:27:01.631 VCAndView[1317:144026] viewDidAppear

step1:initWithNib    viewController 会进行alloc,并init.

step2: loadView       在这里会看它的子类是否有重写这个函数,如果重写了则调用子类的,否则就调用她自己的。注意,这个时                       候视图还是没有没加载进来的哦。

【//    loadView 进行如下操作:
//    
//    如果你重载了这个函数,你应该自己创建必要的views并且将一个非nil值赋给view属性
//    
//    如果你没有重载这个函数,默认实现会使用controller的nibName 和 nibBundle属性来尝试从nib文件加载view。如果没有找到nib文件,它尝试寻找一个与view controller类名匹配(viewControllerClassName.nib)的nib文件。
//    
//    如果没有可用的nib文件,那么它创建一个空的UIView作为它的view。】

step3:viewDidLoad    这个时候视图已经存在了。可以在这里添加你想要添加的UI控件了。

【//    
//    Allocating or loading data to be displayed in your view
//    
//    这时候view已经有了,最适合创建一些附加的view和控件了。有一点需要注意的是,viewDidLoad会调用多次(viewcontroller可能多次载入view,参见图2)。】

step4:viewWillAppear 视图将出现在屏幕上了

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

step5:viewDidAppear   视图已经成功在屏幕上渲染完成了

viewDidAppear/viewWillLayoutSubviews/viewDidLayoutSubviews方法中修改frame才能产生效果。才能实现代码控制frame来横竖屏适应

step6:viewWillDisappear  视图将要消失了

step7:viewDidDisappear  视图从屏幕上消失了

step8:viewDidUnLoad     当发生内存警告的时候,如果本视图不是当前正在显示的视图,则会执行这个函数。将子视图释放。

step9:dealloc          释放viewController

而view的生命周期则是step3_step8.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值