UIViewController的生命周期

-------UIViewController的生命周期

1.UIViewController

     UIViewController是iOS顶层视图的载体及控制器,用户与程序界面的交互都是由UIViewController来控制的
    UIViewController管理UIView的生命周期及资源的加载与释放
    UIView与UIViewController共同展示了用户界面(视图控制器不是UIView,每一个视图控制器都有一个view,视图控制器是个大管家,管理这个视图的加载、卸载、横屏显示)
    当一个视图控制器被创建,并在屏幕上显示的时候。 代码的执行顺序
    (1) alloc                               创建对象,分配空间
    (2) init (initWithNibName)    初始化对象,初始化数据
    (3) loadView                        从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图
    (4) viewDidLoad                  载入完成,可以进行自定义数据以及动态创建其他控件
    (5) viewWillAppear              视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了
    (6) viewDidAppear               视图已在屏幕上渲染完成
    当一个视图被移除屏幕并且销毁的时候的执行顺序,这个顺序差不多和上面的相反
    (1) viewWillDisappear          视图将被从屏幕上移除之前执行
    (2) viewDidDisappear           视图已经被从屏幕上移除,用户看不到这个视图了
    (3) dealloc                             视图被销毁,此处需要对你在init和viewDidLoad中创建的对象进行释放

2.UIViewController生命周期

(1)- (void)loadView    创建载入根视图

 loadView被调用需要满足两个条件:(1)此控制器的view访问器方法被调用;(2)view为nil。正常情况下loadView只会                               被调用一次,因为 loadView第一次调用之后,view就不再为空

 UIViewController的loadView加载视图:loadView首先判断是否有可用的xib文件可以加载,如果有则加载xib文件来创建                                    此控制器的view,如果没有,则使用代码创建此控制器的view

(2)- (void)viewDidLoad 视图加载完成

 这个方法调用的时机:在外部访问根视图的时候,并且当前的根视图是nil的时候

(3)- (void)viewWillAppear:(BOOL)animated 视图将要出现在屏幕之前

  系统在载入所有数据后,将会在屏幕上显示视图,这时会先调用这个方法。通常我们会利用这个方法,对即将显示的视图做进一步 的设置

(4)- (void)viewDidAppear:(BOOL)animated  视图已在屏幕上渲染完成

  当前视图的view被添加到父视图上去时,则会调用viewDidAppear方法,因为控制器的view可以多次添加到父视图上,因此viewDidAppear可以调用多次。

(5)- (void)viewWillDisappear:(BOOL)animated  视图将被从屏幕上移除之前执行

(6)- (void)viewDidDisappear:(BOOL)animated   视图已经从屏幕上移除

(7)- (void)didReceiveMemoryWarning 

3. loadView与viewDidLoad的关系


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值