博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法总结
阅读量:7215 次
发布时间:2019-06-29

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

loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法总结

 

首先,区别程序化初始viewcontroller,半程序化初始和IB初始的区别.

1. 代码化初始:完全没有Xib之类的东西,通过纯代码实现加载.

2. 半代码化:设计xib,然后在程序中用代码调用xib来初始化.

3. 完全IB化:设计xib之类,然后加入到其它xib里.如MainWindow.xib中加入rootviewController,而rootviewcontroller通过xib设计.或者tabbarcontroller中加入多个由xib设计的viewcontroller,这些都是通过IB来初始化的.

好了,了解了这些,来看看各种方法的使用.

1. viewDidLoad:这个方法在三种方式下都会调用,而且是加载完view后调用.

2. loadView:代码初始化程序时设计view用. 半代码化时和完全IB化初始时亦调用,但会重写xib中的view,调用在initwithNibName之后,viewDidLoad之前.

3. initWithNibName:半代码化初始时使用. 完全IB化初始时不调用,UIViewController代码化初始时会通过init调用,且调用在[super init]中. 

 

4. awakeFromNib:awakeFromNib这个方法是一个类在IB中被实例化是被调用的.看了帖子发现大家都推荐使用viewDidLoad而不要使用awakeFromNib,因为viewDidLoad会被多次调用,而awakeFromNib只会当从nib文件中unarchive的时候才会被调用一次.实际测试中发现,当一个类的awakeFromNib被调用的时候,那么这个类的viewDidLoad就不会被调用了,这个感觉很奇怪.

5.initWithCoder是一个类半代码化实例时被调用的.比如,通过IB创建一个controller的nib文件,然后在xocde中通过initWithNibName来实例化这个controller,那么这个controller的initWithCoder会被调用.

 

 

转载地址:http://xhuym.baihongyu.com/

你可能感兴趣的文章
2016年日本信息安全市场规模分析
查看>>
微软:超过96%的企业用户正在测试Win10
查看>>
Google VC投资SDN初创公司Plexxi
查看>>
英特尔在移动市场另辟蹊径
查看>>
英特尔收购Movidius背后:为什么我们需要一款专门的CV处理芯片?
查看>>
三大新闻机构起诉FBI,FBI与苹果大战续集开幕?
查看>>
未来数据中心的选择:宽带多模光纤
查看>>
信息安全隐患日趋严重 专家呼吁政策监管仍待加强
查看>>
Java 代理(proxy)模式
查看>>
转型不该只是一句空话 还应该有更多实质
查看>>
在QTP中申明XPath
查看>>
端到端加密(E2EE)技术分析:在移动应用中实现安全通信的利器
查看>>
信息安全 CIO最关注什么?
查看>>
物联网是怎样把世界联系起来的
查看>>
大数据在统计中的应用初探
查看>>
IBM与思科在融合型基础设施领域实现另一突破
查看>>
《深入理解Elasticsearch(原书第2版)》——第2章 查询DSL进阶 2.1 Apache Lucene默认评分公式解释...
查看>>
三星对外发售高性能芯片,华为上升势头或受重击!
查看>>
TOP10全球ICT技术发展趋势
查看>>
经济参考报:"想哭"病毒为中国网络安全敲警钟
查看>>