我的应用程序适用于iOS 5.1,但对于iOS 6模拟器,我得到以下错误。
正在终止应用程序,原因是未捕获的异常'NSInternalInconsistencyException',原因:'-UITableViewController loadView已加载"MainListViewController“nib,但未获取UITableView。”“
我正在继承UITableViewController
的子类,我不想改变它。
tableview是以编程方式创建的,有一个要从Mainwindow.xib
Tab Bar Controller加载的虚拟MainListViewController.xib
。
我还尝试删除MainListViewController.xib
,将其从MainWindow.xib
标签栏控制器中移除,在AppDelegate中创建MainListViewController
并将其作为UITabBarItem
添加到标签栏控制器中,以解决这个半边问题,但我仍然收到相同的错误。
发布于 2012-06-27 16:28:22
如果您有一个用于UITableViewController
子类的view
接口,那么它的UITableView
插座必须连接到up接口。
您删除MainListViewController.xib
并在代码中完成所有操作是正确的,但它对您无效的原因是,在您构建和运行时,旧的XIB不会被删除。因此,请从模拟器中删除该应用程序,然后重试。那么它应该可以工作了。
发布于 2013-10-08 04:03:41
我在使用故事板时也遇到过类似的问题。我会把我的解决方案发布给其他人。关键是,如果您正确地将文件的所有者设置为UITableView的子类,则仍然必须确保将视图属性设置为Table View。我使用的是故事板,但同样的事情也应该适用于nib。展开“文档大纲”,这样就可以看到故事板的层次结构。我将在下面包含一些屏幕截图。解决此问题的快速方法是,您希望在文档大纲中查看视图。删除作为其子级的任何表视图。将另一个表视图拖动到view属性的顶部。好了。我将在屏幕截图中向您展示。
请注意这两个表。您希望删除table1及其单元格。
好的。现在将table2拖到视图中,就完成了。现在应该可以用了。基本上,如果你有一个UITableViewController的子类,那么它必须用表视图来代替视图,否则就会崩溃。
发布于 2013-05-31 19:00:39
原因可能是:
.h文件检查它是否是UIViewController的子类。它会解决这个问题。
https://stackoverflow.com/questions/11221802
复制相似问题