加载的笔尖,但“视图”出口没有设置

我添加了一个新的笔尖文件到我的项目,并试图加载它。

但是,当我点击应该带我到我创build的视图的工具栏图标时,我得到一个NSInternalInconsistencyException与消息:

终止应用程序由于未捕获的exception'NSInternalInconsistencyException',原因:' – [UIViewController _loadViewFromNibNamed:bundle:]加载了“…”笔尖,但未设置视图sockets。

所以我打开了我的笔尖文件,我发现没有设置参考插口。 然而,我尝试点击并拖动“新的参考sockets”的文件的所有者,但它不会让我…我需要做什么才能让我的观点显示?

你们是对的,但是因为我是一个新人,所以花了我一点时间想出所有的步骤来做到这一点。 以下是对我有用的东西:

  • 打开导致问题的XIB文件
  • 点击左侧栏上的文件所有者图标(顶部,看起来像一个黄色框)
  • 如果您没有看到右侧边栏,请点击工具栏中“查看”上方的第三个图标。 这将显示右侧边栏
  • 在右侧边栏中,点击第三个标签 – 看起来有点像报纸
  • 在顶部的“Custom Class”下,确保Class是应该对应于这个视图的ViewController的名字。 如果没有,请input

自定义类配置

  • 在右侧边栏中,点击最后一个标签 – 看起来像一个带箭头的圆圈
  • 你应该看到下面有“视图”的“网点”。 将其旁边的圆圈拖到左侧栏上的“视图”图标(底部,看起来像一个灰色轮廓粗的白色正方形

自定义类配置

  • 保存xib并重新运行

这是乔希法官的build议,但以graphics方式(图片是我的):

  1. select文件所有者
  2. 在右侧面板select自定义类。
  3. input自定义类名称

在这里输入图像描述

  1. 在右侧面板上selectoultets
  2. 拖动视图sockets来查看组件

在这里输入图像描述

最后,视图控制器被实例化为滚动代码:

  PTFilterUserVC *aFilterUserVC = [[PTFilterUserVC alloc] initWithNibName:@"FilterVC" bundle:nil]; //OPTIONAL.This is how 'I' am interested in present the view controller. [self.navigationController pushViewController:aFilterUserVC animated:YES]; 

我通常可以通过重buildFile's Owner和视图之间的连接来修复它。 从文件所有者控制拖动到您的视图(在IB),并从popup菜单中select视图。

视图标识 – 类标识未设置。 将其设置为适当的类后,问题就解决了。

你确定你有一个UIView(或子类)分配给你的ViewController的“视图”属性?

右键单击xView的左窗格中的“文件所有者”for yourController,然后validation是否设置了“查看”插口。 如果没有,将其设置为一个视图!

这将确定问题

我有与XCode 4.6.3相同的问题。 我已经开始使用一些名为MySettingsView.h.m文件,但是删除了它们以支持MySettingsViewController.h ,但是尽pipe尝试了大部分提到的提示,但它仍然保持错误,

由于未捕获exception'NSInternalInconsistencyException',原因:' – [UIViewController _loadViewFromNibNamed:bundle:]加载了“MySettingsView”笔尖,但视图sockets没有设定。“

它显然仍然“困惑”,试图加载MySettingsView.xib而不是MySettingsView Controller .xib。 也许它的“做我的意思”逻辑太过于花哨。

所以我通过在MySettingsViewController.m中对NIB / XIB名称进行硬编码来解决这个问题:

 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:@"MySettingsViewController" bundle:nibBundleOrNil]; } 

我的问题是由于没有视图集的类文件夹中有一个重复的笔尖。 Xcode似乎是select一个构build一个笔尖,然后下一次我build立的项目。 刚刚删除了另一个。 看起来不错。 卫生署!

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

我只是把它固定在我的。 大项目,两个文件。 一个是“ReallyLargeNameView”,另一个是“ReallyLargeNameViewController”

根据上面select的第二个答案,我决定我应该清理我的构build。 Nada,但我仍然怀疑XCode(因为我有两个相同的类,应该抽象它们,但呃…)所以,一个人的工作,一个不是。 文件的所有者名称只要复制粘贴,重新启动sockets,xCode重新启动,仍然没有。

所以我删除了类似的命名类(这是一个视图)。 很快,新的错误“sockets内没有挂钩”字面上是“webView不是键值”等等,基本上说“Visual Studio更好”。 无论如何…我擦除了较小的命名文件,而巴姆,它的作品。

XCode被类似命名的文件弄糊涂了。 而且该项目足够大,需要重新启动一下,这可能是其中的一部分。

希望我有一个比“XCode困惑”更多的技术答案,但是好吧,xCode在这一点上变得很困惑。 不像我帮助一个小孩子一样,对它进行灌注。 它现在的作品,:)如果以上不能解决任何问题,应该有利于他人。

永远记得清理你的版本(通过删除模拟器)

我也有同样的问题,我的问题是,我添加了一个其他本地化(英文)的ViewControllers笔尖,所以我的本地化德语的应用程序无法find与本地化英语的笔尖! 希望这有助于任何人!

我曾经面临同样的问题,同时意外删除xib引用,并再次添加它。我只是通过连接文件的所有者和视图固定。还确保您的FilesOwner的自定义类是您预期的viewController。

对我来说,问题是由调用initWithNibName:bundle:引起的。 我使用nib文件中的表格视图单元格来定义坐在tableViews上的条目表单。 因为我没有一个观点,所以没有任何意义可以与之结合。 相反,如果我调用initWithStyle:方法,并从那里,我加载nib文件,然后事情按预期工作。

我有同样的问题,但要求稍微不同的解决scheme。 在这种情况下的问题是文件所有者的类,而不是视图的类。 为了设置这个,我必须点击界面生成器窗口左下angular的“向后播放”图标,然后出现的选项隔离了文件所有者,第一响应者和视图的特征。 点击第一个(一个大的透明框),使我能够按照上面的build议设置它的自定义类。

我有同样的问题,但需要一个不同的解决scheme。 在这种情况下的问题是文件所有者的类没有连接到xib文件。

我今晚遇到了一个类似Swift UIViewController子类的东西。 在这种情况下,上述修复程序都没有工作,但重新sorting了我的代码。 Net-net,在子类的定义本身出现在同一个文件之前,对子类有一个扩展似乎混淆了XCode,尽pipe编译好了; 修正是在子类的定义之后放置扩展。

我已经发布了这个类似问题的答案的细节。

在我的情况下,*** ViewController类中的指定初始化程序- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil被实现,所以即使当我调用其他初始化程序初始化对象时,指定的初始化程序叫做 。

所以要解决这个问题检查- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil也是一个正确的方法。

刚刚在我的项目中有同样的错误,但不同的原因。 在我的情况下,我有我的自定义UITableViewController类中的名称“查看”的IBOutlet设置。 我知道“视图”是特殊的,因为它是基类的成员,但我不认为视图(不同的情况下)也是一个问题。 我猜cocoa的一些区域不区分大小写,可能是装载一个xib就是其中的一个区域。 所以我只是将它重命名为DefaultView,现在一切都很好。

select文件所有者,并打开身份检查器,给出它所对应的类名。 如果上述方法都不起作用,而且仍然看不到视图sockets,那么将新的参考sockets连接到文件的所有者,然后您就可以看到视图sockets。 点击视图Outlet在View Outlet和File的所有者之间build立连接。 运行应用程序这工作正常。

我想第二个斯蒂芬J.有些时候X代码只是困惑。 我刚刚有一个经验,我已经玩了很多用户界面,并添加和删除了很多次的网点。 网点只是不会再连线。 我从来没有弄清楚一个具体的原因(我已经尝试了上面的所有解决scheme),而且我只需要删除NIB并从头开始重新创build它,事实上在NIB之前必须使用不同的名称。 (XCode 4.6.1)浪费了几个小时。

就我而言,这个视图在xib中没有被查看。 在xib视图大小=无(第四个标签右手)。 我将大小设置为Freeform并重新加载xCode。 视图被上诉,我设置适当的链接到视图。

如果你已经尝试了所有的东西,但仍然遇到这个错误,请尝试从头开始重新创build类文件,但请记得选中“同时创buildXIB文件”checkbox。 这将自动链接分别创build这些文件时没有链接的几个项目。 创build完成后,可能会将所有内容剪切并粘贴到新的XIB上,并且应该可以正常工作。

我发现这个问题具体与在Swift中分别创build文件。

对我来说,它发生在什么时候

  • 我有一个与Nib文件关联的ViewController类(.mm / h)
  • 这个ViewController的UIView必须作为子视图加载到另一个视图上,

  • 我们会打电话给这样的

     -(void)initCheckView{ CheckView *pCheckViewCtrl = [CheckView instance]; pCheckView = [pCheckViewCtrl view]; [[self view]addSubview:pCheckView]; [pCheckViewCtrl performCheck]; } 

哪里

 +(CheckView *)instance{ static CheckView *pCheckView = nil; static dispatch_once_t checkToken; dispatch_once(&checkToken, ^{ pCheckView = [[CheckView alloc]initWithNibName:@"CheckView" bundle:nil]; if ( pCheckView){ [pCheckView initLocal]; **[pCheckView loadView];** } }); return pCheckView; } 

这里loadView是缺less,,,join这一行解决了我的问题。

我有同样的问题,我想通了,这是因为我已经勾选了“ 内容”选项表视图的属性中的“ 静态单元格 ”。 工作时,它变成“ Dynamic Prototypes ”。 屏幕截图如下。 在这里输入图像描述