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

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

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

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


当前回答

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

其他回答

我的问题出在错误的课堂上。我使用custom.xib作为自定义视图。正确设置如下:

视图不应有类与.xib一起使用的类在文件的所有者选项卡中设置Outlets连接到文件的所有者,而不是视图。

我在Xcode 9.3中遇到了类似的问题,将“文件所有者”属性检查器下的“模块”设置为项目模块为我解决了这个问题。

选择文件所有者,然后打开身份检查器,给出与之对应的类名。如果上述方法都不起作用,并且仍然无法看到视图出口,则将新的引用出口连接到文件所有者,则可以看到视图出口。单击视图Outlet以在视图Outlet和文件所有者之间建立连接。运行该应用程序,工作正常。

我也有同样的问题,但需要不同的解决方案。本例中的问题是文件所有者的类未连接到xib文件。

我也遇到了同样的问题,我发现这是因为我在Content选项下的Table View的财产中勾选了“Static cells”。当它变为“动态原型”时起作用。屏幕截图如下。