什么时候必须设置视图插座?

时间:2017-12-04 16:34:40

标签: ios interface-builder xib

我已经阅读了有关如何修复“查看插座未设置”异常的其他答案,并了解如何设置文件所有者和查看插座。但是,我无法理解何时/为什么会引发异常。我怎么能逃脱这个,这不是问题?

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文件本身没有文件所有者设置,也没有视图插座,并且没关系。但其他时候,这不起作用。我试图重现一个特定的案例,确定异常是什么时候,但是没有引发,但是无法确定它。

1 个答案:

答案 0 :(得分:-1)

Alladinian的评论有所帮助。相关的docs来自loadView()方法:

  

如果nibName属性返回非零值,则视图控制器具有关联的nib文件,如果视图控制器是从故事板实例化的,则会发生这种情况,如果您使用init显式指定了nib文件(nibName:bundle: )方法,或者如果iOS在应用程序包中找到一个nib文件,其名称基于视图控制器的类名。

例如,我制作了一个名为'DuckView'的笔尖,以及一个名为'DuckViewController'的视图控制器,Xcode自动将两者关联起来,并期望设置视图插座。如果未设置视图插座,则不会覆盖AND loadView(),则会引发异常。相反,如果视图插座设置为或者loadView()方法已实现,则运行正常。