【发布时间】:2015-09-28 11:20:07
【问题描述】:
这是一个奇怪的问题..
1.我通过xib创建了一个自定义的“view”,并通过
进行初始化 KWView *oneView = [[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil ]lastObject];
这个xib的File's Owner名字是“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 的 File’s Owner 名字是“KWMenuVC”(我也试试 NSObject),然后我选择这个 VC 的视图的自定义类为“UIView”。[这个 xib 命名为“KWMenuVC.xib”]
======= 这个不行,卡在“KWMenuVC *menuVC = [[[NSBundle mainBundle]loadNibNamed:@"menuVC" owner:nil options:nil ]lastObject]; ”,错误是“[setValue:forUndefinedKey:]: 这个类不是键值编码兼容的键视图”
3.后来,我尝试了另一种方法来初始化 KWMenuVC ,无论我如何更改其 Xib 的 File's Owner 名称,它都很好用
KWMenuVC *menuVC= [[KWMenuVC alloc]init];
[self.view addSubview:self.menuVC.view];
======= 效果很好!
怎么会这样??我曾经通过代码构建应用程序的 UI。但在某些情况下,xib 似乎更有效。现在看来这不是一个容易理解的东西。
非常感谢您的帮助!
【问题讨论】:
-
this class is not key value coding-compliant for the key view表明您有一个 xib,它试图将某些视图绑定到UIViewController子类的view属性(可能是该 xib 的文件所有者)。看来您提供的对象不是UIViewController并且没有view属性,因此此绑定失败。如果没有更多关于这些 xib 包含哪些绑定或哪些对象作为其所有者提供的详细信息,我无法给出更准确的答案。 -
兄弟,非常感谢您的帮助。我使用了不正确的方法.. initWithNibName:bundle: 是对的。
标签: ios compiler-errors xib viewcontroller