36_iOS干货23_iOS控制器的生命周期&view的创建

一,VC的生命周期

1,一般过程:

非storyboard走initWithNibName (storyboard走initWithCoder) ->awakeFromNib(各种视图层加载完毕)

-> loadView (此时才能进行视图操作)-> viewDidLoad -> viewWillAppear -> viewWillLayoutSubviews -> viewDidLayoutSubviews ->  viewDidAppear -> viewWillDisappear -> viewDidDisappear ->dealloc ->didReceiveMemoryWarning

注意:

  • 1,控制器view是通过懒加载的方式进行加载的,即用到的时候再加载;
  • 2,当我们用到控制器view时,就会调用控制器view的get方法,在get方法内部,首先判断view是否已经创建,如果已存在,则直接返回存在的view,如果不存在,则调用控制器的loadView方法,在控制器没有被销毁的情况下,loadView也可能会被执行多次
  • 3,storyboard加载的是控制器及控制器view,而xib加载的仅仅只是控制器的view

2,图示

 

二,控制器view的创建

 

1,纯代码创建

2,storyboard创建

  •     1,重写loadView方法,需要
  •     2,[super loadView]首先判断是否指定storyboard或者xib,如果指定,
  • 就可以帮助加载控制器view;如果没有指定,loadView也会帮助创建,只不过创建的是空
  •     3,loadView里边不要写[super loadView]

3,xib创建
    1loadView方法的应用场景:
        1,一开始就想展示一张图片,可以直接让控制器的view是UIImageView;
        2UIWebView:展示网页;
    2,重写loadView的作用:减少内存使用,直接创建控制器最需要的view
    3,initWithNibName的底层实现:

  •         1,判断nibName有没有值,如果没有,就会执行以下几步;
  •         2,寻找有没有XMGView.xib,有就直接帮忙加载
  •         3,寻找有没有XMGViewController.xib,有就直接加载;
  •         4,都没有,就创建一个空的view:空的view不是透明(alpha = 0),若是透明,则可以操作
  •             而是几乎透明,为clearColor能看到里边窗口的控件,却不能操作内部控件
  •         5,init底层会调用initWithName

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值