这是一个奇怪的问题..
1.我通过xib创建自定义“视图”,并通过
初始化它 KWView *oneView = [[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil ]lastObject];
这个Xib的文件所有者名称是“NSObject”(然后我尝试任何其他更多,无论我选择什么,它运行顺利),在那里,我选择视图的自定义类作为“KWView”[这个xib命名为" KWView.xib"]
=======那有效!
2.然后我通过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视图的自定义类作为“UIView”。[这个xib名为" KWMenuVC.xib" ]
=======这个不行,它停留在“KWMenuVC * menuVC = [[[NSBundle mainBundle] loadNibNamed:@" menuVC" owner:nil选项:nil] lastObject]; “并且错误是”[setValue:forUndefinedKey:]:此类不是键值视图的键值编码兼容“
3.后来,我尝试了另一种方法来初始化KWMenuVC,这很好地解决了我如何更改其Xib文件的所有者名称
KWMenuVC *menuVC= [[KWMenuVC alloc]init];
[self.view addSubview:self.menuVC.view];
=======效果很好!
怎么会发生这种情况?我曾经构建应用程序' UI代码。但在某些情况下,xib似乎更有效。现在看来这不是一件容易理解的事情。
非常感谢你的帮助!
答案 0 :(得分:0)
使用XIB初始化UIViewController的正确方法是:
KWMenuVC *viewController = [[KWMenuVC alloc]initWithNibName:@"KWMenuVC" bundle:nil];