【发布时间】:2016-08-31 00:05:30
【问题描述】:
我有一个 MyViewController.swift 和一个 MyViewController.xib 来展示 MyViewController 的布局。
我尝试了不同的方法来加载这个视图控制器,包括:
//1
let myVC = UINib(nibName: "MyViewController", bundle:
nil).instantiateWithOwner(nil, options: nil)[0] as? MyViewController
//2
let myVC = NSBundle.mainBundle().loadNibNamed("MyViewController", owner: self, options: nil)[0] as? MyViewController
//3
let myVC = MyViewController(nibName: "MyViewController", bundle: nil)
第三个是唯一成功的初始化,但前两个导致错误:
由于未捕获的异常“NSUnknownKeyException”而终止应用程序,
原因:'[setValue:forUndefinedKey:]: this 类与键 XXX 的键值编码不兼容。
这些加载方法有什么问题?
【问题讨论】:
-
你能看到完整的代码吗
-
@bluenowhere 检查您已创建并与组件连接的所有插座。确保您的
.xib文件中的connection inspector中的Outlets中不应有任何感叹号。 -
bluenowhere:你找到答案了吗?
-
我相信前两种方法将您的“MyViewController”类初始化为 UIViewController,并且没有正确连接插座和操作,因此应用程序在试图找到它们时崩溃。使用您的类的构造函数进行初始化会将类出口连接到 nib,以便一切正常运行。
标签: ios swift initialization xib viewcontroller