19 控制器view的生命周期

// 接收到内存警告的时候调用

- (void)didReceiveMemoryWarning{   

 [superdidReceiveMemoryWarning];

}


ARC:

1.viewDidLoad

2.viewWillAppear

3.viewWillLayoutSubviews

4.viewDidLayoutSubviews

5.viewDidAppear

6.viewWillDisappear

7.viewDidDisappear

 非ARC:

- (void)viewWillUnload{}

- (void)viewDidUnload{

// 清空没有必要的数据

self.datas = nil;

}


loadView:在Controller的view为nil时调用

viewDidLoad:在view从nib文件初始化的时候调用

view的控制器默认会注册memory warning notification,当controller的view没有用的时候,viewDidUnload会被调用,实现将retain的view release


viewController的声明周期

要点总结:

1 viewContorller的view使用懒加载的方式

2 loadView和viewDidLoad的区别在于:loadView时view还没有生成;viewDidLoad时,view已经生成了。loadView只会被调用一次,而viewDidLoad可能会被调用多次(View可能会被加载多次)

3 viewDidLayoutSubviews在以下情况会调用:

1、init初始化会触发layoutSubviews2、addSubview会触发layoutSubviews3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化4、滚动一个UIScrollView会触发layoutSubviews5、旋转Screen会触发父UIView上的layoutSubviews事件6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近看了几篇博客,在这里对ViewConroller的生命周期做一个总结,抽丝剥茧吧,感觉有道理的拿出来汇总一下 ...
    公子无礼阅读 1,485评论 0 2
  • 7、不使用IB是,下面这样做有什么问题? 6、请说说Layer和View的关系,以及你是如何使用它们的。 1.首先...
    AlanGe阅读 725评论 0 1
  • ViewController是IOS开发中MVC模式中的C,ViewController是view的con...
    豆瓣菜阅读 4,162评论 0 15
  • 172.简述视图控制器的生命周期。 1)init函数(init;initWithFrame;initWithCod...
    AlanGe阅读 391评论 0 0
  • 1. 启动流程 1.1 准备知识 Mach-O Apple的操作系统的可执行文件格式几乎都是mach-o,mach...
    我有小尾巴快看阅读 3,250评论 1 37