IOS loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法
来源:互联网 发布:魔兽世界数据库wlk 编辑:程序博客网 时间:2024/05/17 22:36
转载,原地址为:http://jianyu996.blog.163.com/blog/static/11211455520131226840879/
请尊重原创:
1,无论XIB还是代码创建都会调用loadView方法。self.view为nil时才会被调用。
手工创建视图时,loadView被调用时self.view还为nil。一般在该方法中手工定制view。XIB创建视图时,loadView仍会被调用、loadView被调用时XIB定制的视图还没创建完成,若是再覆写该方法的话、会将XIB定制的视图覆盖掉。
所以,纯手工定制视图时,一般在该方法中写;XIB定制视图时、不要覆写该方法。
2,无论XIB还是代码创建都会调用viewDidLoad方法。
手工创建视图时,viewDidLoad被调用时self.view已经创建完成。可在在该方法中进一步定制视图。
XIB创建视图时,viewDidLoad仍会被调用,viewDidLoad被调用时self.view已经创建完成。可在在该方法中进一步定制视图。
所以,无论那种方式定制视图、都可以覆写该方法。
3,一般情况下调用 init方法或者调用initWithNibName方法实例化UIViewController, 不管调用哪个方法最终都会调用initWithNibName方法。
当控制器被initWithNibName:并加入到导航控制器的栈中时,它不会加载nib文件,直到nib文件被实际显示。因此控制器在nib文件中定 义的内容,例如label,可能还没有实例化。此时label可能只是一个nil指针,需要额外使用代码中实现的属性来存储信息。可以在 viewWillAppear:方法中对niv实例化的对象属性进行设置。
4, initWithCoder是一个类在IB中创建但在xocdde中被实例化时被调用的.比如,通过IB创建一个controller的nib文件,然后在xocde中通过initWithNibName来实例化这个controller,那么这个controller的initWithCoder会被调用。
5,在使用IB的时候才会涉及到此方法的使用,当.nib文件被加载的时候,会发送一个awakeFromNib的消息到.nib文件中的每个对象,每个对象都可以定义自己的awakeFromNib函数来响应这个消息,执行一些必要的操作。
0 0
- loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法
- loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法
- loadView、viewDidLoad、initWithNibName、awakeFromNib、initWithCoder的用法
- loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法
- loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法
- loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法
- loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法
- loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法
- loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法
- loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法
- loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法
- loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法
- loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法
- iOS -- loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法
- 『IOS』loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法
- IOS loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法
- [转]loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法
- [转]loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法
- 传智播客Spring MVC教案
- 验证码实现详解
- 基于Golang实现的Rabbitmq 连接池
- AFNetworking 3.0迁移指南
- 招商银行企业银行u-bank电子对账单电子回单的导出打印方法
- IOS loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法
- JSP刷新页面的几种方法
- Android系统四层体系结构详解
- allegro 学习过程中遇到的问题
- String与StringBuffer、StringBuilder的区别
- perl 异步超时 打印错误
- 腾讯 算法基础-字符移位
- #POJ1521#Huffman编码
- 浅析 Ruby 里的几个动态方法 (一),send 方法