我已经阅读了有关如何修复“查看插座未设置”异常的其他答案,并了解如何设置文件所有者和查看插座。但是,我无法理解何时/为什么会引发异常。我怎么能逃脱这个,这不是问题?
UIControl
使用nib初始化override func viewDidLoad() {
super.viewDidLoad()
let viewNib = UINib(nibName: "MyView", bundle: nil)
let myView = viewNib.instantiate(withOwner: nil, options: nil).first as! MyView
self.view = myView
}
类,并且nib文件本身没有文件所有者设置,也没有视图插座,并且没关系。但其他时候,这不起作用。我试图重现一个特定的案例,确定异常是什么时候,但是没有引发,但是无法确定它。
答案 0 :(得分:-1)
Alladinian的评论有所帮助。相关的docs来自loadView()
方法:
如果nibName属性返回非零值,则视图控制器具有关联的nib文件,如果视图控制器是从故事板实例化的,则会发生这种情况,如果您使用init显式指定了nib文件(nibName:bundle: )方法,或者如果iOS在应用程序包中找到一个nib文件,其名称基于视图控制器的类名。
例如,我制作了一个名为'DuckView'的笔尖,以及一个名为'DuckViewController'的视图控制器,Xcode自动将两者关联起来,并期望设置视图插座。如果未设置视图插座,则不会覆盖AND loadView()
,则会引发异常。相反,如果视图插座设置为或者loadView()
方法已实现,则运行正常。