2015-10-17 50 views
4

我有我的viewController这个按钮,当我按它,它应该去的TableViewController。当我这样做时,应用程序崩溃并在控制台中输出这个错误。有人能告诉我我做错了什么吗?谢谢!为什么从ViewController到TableViewController的时候会出现这个错误?

终止应用程序由于未捕获的异常 'NSInternalInconsistencyException',
原因: ' - [的UITableViewController的loadView]从故事板 “主” 标识符 “的UIViewController-ILH-Fe基EZQ” 实例化视图控制器,但没' t 得到一个UITableView。'

+1

场景中的顶层对象必须是tableview。我的猜测是你在UIview中有一个tableview – Paulw11

+0

当你的视图控制器在storyboard中是UITableViewController但是你的视图控制器的自定义类不是,反之亦然时,可能会发生这个问题。 – kientux

+0

那么,我必须制作一个没有视图控制器的表格视图控制器吗? – coding22

回答

17

当我得到这个错误,我最初使用的样板代码为的UITableViewController,但实际视图控制器的UIViewController

原始代码(导致错误)

注意,这是连接到的UIViewController在故事板。

class MainViewController: UITableViewController { 
//insert rest of code here 
//note that funcs such as numberOfRowsInSection(_:) will have the override keyword 
} 

工作代码(去除错误)

class MainViewController: UIViewController { 
//insert code here 
//you also must *remove the override keywords* for 
// some of the included functions or you will get errors 
} 

记得还引用一个IBOutlet在您的视图控制器你的UITableView,并设置委托和数据源(在故事板,你Ctrl +从UITableView拖动到视图控制器顶部的黄色圆圈,然后单击dataSource。为代表重复此操作)。

+0

将组件segue行拖动到该黄色圆圈后,您的意思是“点击dataSource”? –

+0

@JanakaRRajapaksha道歉,但我在半年前写了这篇文章,所以我实际上不记得我指的是什么。不过,我的意思是说,“数据源”是在Ctrl +拖动后弹出的菜单中的一个选项。 –

+1

@JanakaRRajapaksha,似乎当从UITableView拖动到像大卫一样的黄色圆圈时,您会看到一个菜单,其中包含选项数据源和委托。选择一个然后按住Ctrl再次拖动以选择另一个。除了从func某些funcs中取出“覆盖”之外,我还将类定义更改为“class MainViewController:UIViewController,UITableViewDataSource,UITableViewDelegate {...}”。 Thx解决方案,David。 – rockhammer

1

我得到它的工作....我用表视图控制器没有视图控制器和嵌入导航控制器。

相关问题