我在项目中添加了一个新的nib文件,并尝试加载它。

然而,当我单击工具栏图标(该图标应将我带到我创建的视图)时,我会收到一个NSInternalInconstanceException,消息如下:

由于未捕获异常,正在终止应用“NSInternalInconstanceException”,原因:“-[UIViewController_loadViewFromNibNamed:bundle:]加载了“…”笔尖,但未设置视图出口

所以我打开了我的笔尖文件,看到了没有设置引用出口的视图。然而,我尝试单击并拖动“新引用出口”的圆圈到文件的所有者,但它不允许我……我需要做什么才能显示我的视图?


当前回答

未设置视图标识-类标识。将其设置为适当的类后,问题得到解决。

其他回答

我也有同样的问题,但需要一个稍微不同的解决方案。本例中的问题是文件所有者的类,而不是视图的类。要设置此选项,我必须单击Interface Builder窗口左下角的“向后播放”图标,然后出现隔离文件所有者、第一响应者和视图特征的选项。单击第一个(一个大的透明框),使我能够按照上面的建议设置其自定义类。

如果您已经尝试了所有方法,但仍然出现此错误,请尝试从头开始重新创建类文件,但请记住选中“同时创建XIB文件”复选框。这将在单独创建这些文件时自动链接一些未链接的项目。创建后,您可以将所有内容剪切并粘贴到新的XIB上,它应该可以正常工作。

我发现这个问题特别是在Swift中单独创建文件。

您确定为ViewController的“view”属性分配了UIView(或子类)吗?

右键单击ViewController的xib左侧窗格中的“文件所有者”,并验证是否设置了“视图”出口。如果没有,请将其设置为视图!

这将明确解决该问题

我在意外删除xib引用并再次添加它时也遇到了同样的问题。我只是通过在文件所有者和视图之间建立连接来解决了这个问题。还要确保您的文件所有者的自定义类是您期望的viewController。

我花了一个多小时试图找出为什么在从nib启动视图控制器时,视图属性没有设置在视图控制器中。记住在视图控制器的initWithNibName中调用“[super initWithNib Name…]”。