博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS viewController 和 view 的创建消失生命周期总结
阅读量:4969 次
发布时间:2019-06-12

本文共 1428 字,大约阅读时间需要 4 分钟。

  1. 控制器创建的生命周期

    1.  如果从stroryBoard 中产生一个controller,那么会先调用initWithCoder:, awakeFromNib, loadView,viewDidLoad,viewWillAppear,viewWillLayoutSubviews,不会调用init方法。 2.  如果从代码中产生一个ViewController,那么会调用init方法,loadView,viewDidLoad,viewWillAppear,viewWillLayoutSubviews等
  2. 自定义view创建的生命周期

    1. 如果是从nib中产生,那么会调用view的initWithCoder:,awakeFromNib,layouSubviews方法,不会调用initWithFrame: 方法 2. 如果代码产生,那么会调用view的init ,initWithFrame: ,layoutSubviews方法
  3. 控制器view的加载方式:

    1.  调用loadView方法,如果实现的话进行调用,重写loadView方法,很容易造成错误,注意loadView的调用时机,loadView常用来手动添加view2.  查找StoryBoard,看是否包含该控制器,如果有,加载storyBoard 中的view3.  查找xib 文件,先查找该控制器名字Controller前面的字符串组成的名字的xib 文件,如果没有找到,那么查找与Controller 同名的xib 文件4.  如果没有找到,那么系统产生一个空白的view
  4. 控制器和控制器自带的nib之间的关系:

    1.  使用init 方法初始化conroller的时候,先调用initWithNib:bundle方法,然后是init方法,然后直接调用loadView方法,viewDidLoad,viewWillAppear,viewWillLayoutSubviews,viewDidLayoutSubviews,viewDidAppear等等方法,注意没有调用controller的initWithCoder:,awakeFromNib方法 。更正:我发现连当我自己调用loadView 方法时候,viewDidLoad都没有调用,然后在initWIthNib:bundle里面初始化相关的IB连接发现居然是无效的,我在viewDidLayouSubviews:方法中初始化时有效地;所以以后还是不要手动调用loadView方法了2.  使用initWithNib:bundle方法初始化controller,不会调用init,然后直接调用loadView方法,viewDidLoad,viewWIllAppear,viewWillLayoutSubviews,viewDidLayoutSubviews,viewDidAppear等方法,不会调用controller的initWithCoder:,awakeFromNib等方法,这点很容易犯错
  5. 有时候只有一个xib自定义的view 添加到控制器view的时候,我们可以直接将该xib 作为控制器的view, 设置owner; 也可以在loadview中将新的view 赋值给viewController.view

转载于:https://www.cnblogs.com/peaceWang/p/5346726.html

你可能感兴趣的文章
[转帖][Linux]systemd和sysV
查看>>
操作系统——笔试面试高频题
查看>>
HTML和CSS的静态页面
查看>>
POJ 3744 Scout YYF I(矩阵快速幂优化+概率dp)
查看>>
Solr集群搭建详细教程(一)
查看>>
各大主流.Net的IOC框架
查看>>
apache占用80端口,导致nginx启动不成功
查看>>
自动化测试摸索
查看>>
268. Missing Number (binary)
查看>>
Block代替delegate,尽量使用block,对于有大量的delegate方法才考虑使用protocol实现.
查看>>
新概念1 17---25
查看>>
Django Rest Framework 4
查看>>
SQL 的基本使用概念简介
查看>>
Python数据库迁移脚本(终极版)
查看>>
nginx通过fastcgi调用php-fpm
查看>>
7月14日实习日志
查看>>
MVC HtmlHelper类的方法总结
查看>>
Scrapy爬虫框架
查看>>
http、TCP/IP协议与socket之间的区别
查看>>
【21】127. Word Ladder
查看>>