initWithNibName的初始化问题
来源:互联网 发布:城市人口分布大数据 编辑:程序博客网 时间:2024/05/17 08:28
在开发过程中,几次碰到在initWithNibName:nibNameOrNil方法里加载组件或者初始化一些值时,都跟没设置一样,查了一些资料才发现,原来initWithNibName:nibNameOrNil得执行顺序是这样子的
supper :
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
set param=@“supper-A”
NSLog(@“A-initNIb”);
}
viewDIdLoad
{
[super viewDidiLoad];
NSLog(@“A-view”);
NSLog(param);
}
sub:
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
set param=@“sub-B”
}
viewDIdLoad
{
[super viewDidiLoad];
NSLog(@“B-View”);
NSLog(param);
}
A-initNIb
A-view
supper-A
B-View
supper-A
B-initNIb
sub-initWithNibName: 里调用supper的initWithNibName:
superclass的initWithNibName方法结束,表示nib文件已加载,则调用sub的 viewDidLoad方法。于是应调用[subclass viewDidLoad]方法。
subclass的viewDidLoad方法又调用了supclass的viewDidLoad方法。
最后才是initWithNibName方法剩余的代码
结论,你在sub里面设置的param=sub-B,并没有起作用输出,因为,在设置之前,sub的view已经执行过了,为了避免这样可以改成
sub
viewDIdLoad
{
NSLog(@“B-View”);
NSLog(param);
[super viewDidiLoad];
}
- (void)viewDidLoad{
[selfsetWords:@” pleaseanswer the door”];
[super viewDidLoad];
}
- initWithNibName的初始化问题
- initWithNibName的初始化问题
- initWithNibName导致的初始化问题
- initWithNibName导致的初始化问题
- initWithNibName导致的初始化问题
- initwithNibName不能初始化wiew
- initwithNibName不能初始化wiew
- initWithNibName
- initWithNibName
- initWithNibName 和 loadNibNamed 的区别
- initWithNibName 和 loadNibNamed 的区别
- initWithCoder, initWithNibName, viewDidLoad的区别
- initWithNibName和loadNibNamed的区别
- iOS 初始化方法 initWithNibName、initWithCoder、awakeFromNib和 loadNibNamed说明
- loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法
- loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法
- loadView、viewDidLoad、initWithNibName、awakeFromNib、initWithCoder的用法
- initWithNibName与一般init的区别
- 迎接新的学期
- C语言名题精选百则——排列,组合与集合
- 黄金分组定律 使用Windows组管理资源权限的基本原则
- ssh设置超时时间
- pthread_cond_signal与pthread_cond_wait详解
- initWithNibName的初始化问题
- 组建核心团队时的困惑
- Ubuntu移动操作系统安装指南
- 纳米级的码农和cocos2d-x的故事
- 异常
- 我不看好中移动充当4G急先锋
- 剧集分销模式不再吃香
- 大话两次ABAP面试经验
- 人民铁路,你让人民怕了