ViewController xib初始化不行吗?
ViewController initialized by xib can not work?
这是一个奇怪的问题..
1.I通过xib创建自定义“视图”,并通过
初始化
KWView *oneView = [[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil ]lastObject];
这个Xib的File's Owner name是“NSObject”(然后我再尝试其他的,无论我选择什么,它运行顺利),在那里,我选择视图的Custom Class作为“KWView”[This xib 名为 "KWView.xib"]
======= 有效!
2.Then 我通过 xib 创建了另一个自定义“viewController”。
KWMenuVC *menuVC = [[[NSBundle mainBundle] loadNibNamed:@"KWMenuVC" owner:nil options:nil ]lastObject];// error occurs here
[self.view addSubview:self.menuVC.view];
这个 Xib 文件的所有者名称是“KWMenuVC”(我也尝试 NSObject),在那里,我选择这个 VC 视图的自定义 Class 作为“ UIView.[这个 xib 名为 "KWMenuVC.xib"]
======= 这个不行,卡在“KWMenuVC *menuVC = [[[NSBundle mainBundle]loadNibNamed:@"menuVC" owner:nil options:nil ]lastObject]; “错误是“[setValue:forUndefinedKey:]:这个class不符合键视图的键值编码”
3.Later,我尝试了另一种方法来初始化 KWMenuVC,无论我如何更改其 Xib 的文件所有者名称,它都很有效
KWMenuVC *menuVC= [[KWMenuVC alloc]init];
[self.view addSubview:self.menuVC.view];
======= 效果不错!
怎么会这样??我曾经通过代码构建应用程序的UI。但 xib 在某些情况下似乎更有效。现在看来不是一个容易理解的东西。
非常感谢您的帮助!
使用 XIB 初始化 UIViewController 的正确方法是:
KWMenuVC *viewController = [[KWMenuVC alloc]initWithNibName:@"KWMenuVC" bundle:nil];
这是一个奇怪的问题..
1.I通过xib创建自定义“视图”,并通过
初始化 KWView *oneView = [[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil ]lastObject];
这个Xib的File's Owner name是“NSObject”(然后我再尝试其他的,无论我选择什么,它运行顺利),在那里,我选择视图的Custom Class作为“KWView”[This xib 名为 "KWView.xib"]
======= 有效!
2.Then 我通过 xib 创建了另一个自定义“viewController”。
KWMenuVC *menuVC = [[[NSBundle mainBundle] loadNibNamed:@"KWMenuVC" owner:nil options:nil ]lastObject];// error occurs here
[self.view addSubview:self.menuVC.view];
这个 Xib 文件的所有者名称是“KWMenuVC”(我也尝试 NSObject),在那里,我选择这个 VC 视图的自定义 Class 作为“ UIView.[这个 xib 名为 "KWMenuVC.xib"]
======= 这个不行,卡在“KWMenuVC *menuVC = [[[NSBundle mainBundle]loadNibNamed:@"menuVC" owner:nil options:nil ]lastObject]; “错误是“[setValue:forUndefinedKey:]:这个class不符合键视图的键值编码”
3.Later,我尝试了另一种方法来初始化 KWMenuVC,无论我如何更改其 Xib 的文件所有者名称,它都很有效
KWMenuVC *menuVC= [[KWMenuVC alloc]init];
[self.view addSubview:self.menuVC.view];
======= 效果不错!
怎么会这样??我曾经通过代码构建应用程序的UI。但 xib 在某些情况下似乎更有效。现在看来不是一个容易理解的东西。
非常感谢您的帮助!
使用 XIB 初始化 UIViewController 的正确方法是:
KWMenuVC *viewController = [[KWMenuVC alloc]initWithNibName:@"KWMenuVC" bundle:nil];