故事板“Main”,但在使用UITableViewController时没有获得UITableView

我一直在阅读本教程 ,“选项2:原型单元”我对所有步骤都表示赞同,但是,以下代码给出了一个错误:

@interface MTViewController : UITableViewController @end 

错误消息是:

故事板“Main”中带有标识符“UIViewController-BYZ-38-t0r”的实例化视图控制器,但没有得到UITableView。

这是我尝试的 – 我将UITableViewController更改为UIViewController ,错误消失了。 但是,表格视图仍然是空白的。 你能告诉我为什么会这样吗?

在故事板中,您需要将UITableViewController的根视图设置为UITableView

Interface Builder表视图控制器

Interface Builder自定义类

尝试将您的超类更改为UIViewController或将故事板中的控制器更改为TableView Controller

 @interface MTViewController : UIViewController, UITableViewDataSource, UITableViewDelegate @end 

将表视图控制器的新实例拖到故事板中,将在先前控制器中创建的单元格复制到新控制台中。

发生此错误可能是因为您使用了XCode创建的默认UIViewController,它不是UITableViewController。

我也遇到过这个问题。 我创建了原始的纯UIViewController然后我决定使用UITableViewController 。 问题是我忘了在新控制器上设置故事板ID,并将其更改为旧控制器上的其他内容,否则您将从故事板中实例化旧控制器,并且会出现此问题。

我遇到了与你完全相同的问题。 您可能在故事板中使用UIViewController而不是UITableViewController。

注意: 仅在故事板中inheritance自定义UITableViewController是不够的 。 你会看到区别: UIViewController和UITableViewController之间的区别

所以你必须从库中拖出一个UITableViewController,然后将所有东西(单元格)移动到它。 如果损坏,请不要忘记检查绑定和自动布局。

当然你不能将tableview移动到UIViewController的根目录,它只是不能那样工作。 =)

确保dataSource设置为self。

实际上你使用的是UIViewController而不是UITableViewController。 删除默认视图控制器并在故事板中拖动新的TableViewController。 因为你的ViewController没有TableView,所以它试图加载单元格。

简单的解决方案是: 删除ViewController并添加TableViewController

您必须inheritanceUIViewController而不是UITableViewController

//这就是你应该如何去做的

 @interface MTViewController : UIViewController @end