*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x101664480> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key label.'
当我连接这样的IBOutlet时,为什么会出现此错误;
@IBOutlet weak var label: UILabel!
func viewDidLoad() {
super.viewDidLoad()
label.text = "Hello World!"
}
xib的文件所有者设置为自定义UIViewController类
UIViewController + xib是否特别?
Connected IBOutlet
忽略import NightNight
Outlets
VC通过UITableView中的此函数加载;
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let topicVCName = UIViewController(nibName: categories[indexPath.section].refName[indexPath.row], bundle: nil)
navigationController?.pushViewController(topicVCName, animated: true)
}
如果我带走插座,xib可以正常加载,没有错误。 (显然)
答案 0 :(得分:0)
答案在于错误消息:
UIViewController 0x101664480
这证明了故事板中的视图控制器(或视图控制器本身来自的任何地方)是普通的UIViewController,而不是SingleNumberVC。确实SingleNumberVC具有label
属性,但UIViewController没有!
你说过:
xib的文件所有者设置为自定义UIViewController类
确实,因为否则你根本就不能形成出口。但是当代码运行时,视图控制器本身不是自定义的UIViewController类。你没有回答它的来源问题,但我向你保证,无论在哪里,你都会发现你忘了指定SingleNumberVC。
编辑哦,我明白了,这是:
let topicVCName = UIViewController(nibName: categories[indexPath.section].refName[indexPath.row], bundle: nil)
将该行中的UIViewController
更改为SingleNumberVC
。