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

时间:2015-09-30 20:44:47

标签: ios xcode uitableview xcode-storyboard

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

@interface MTViewController : UITableViewController

@end

错误信息是:

  

实例化的视图控制器,带有标识符" UIViewController-BYZ-38-t0r"来自storyboard" Main",但没有获得UITableView。'

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

9 个答案:

答案 0 :(得分:44)

在故事板中,您需要制作UITableViewController一个UITableView的根视图。

Interface Builder Table View Controller

Interface Builder Custom Class

答案 1 :(得分:16)

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

function hide(id) {    
   $("#" + id).hide();
}

$(function(){
    hide("test");
});

答案 2 :(得分:6)

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

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

答案 3 :(得分:4)

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

注意: 仅在故事板中继承自定义UITableViewController是不够的。你会看到差异: difference between UIViewController and UITableViewController

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

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

答案 4 :(得分:3)

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

答案 5 :(得分:2)

实际上,您使用的是UIViewController而不是UITableViewController。删除默认的视图控制器,然后将新的TableViewController拖到情节提要中。因为您的ViewController没有TableView,但它正在尝试加载单元格。

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

然后,您必须将其类名称更改为 MTViewController 您的类名称

答案 6 :(得分:2)

在情节提要中,只需将ViewController的类更改为新的类名,即MTViewController-image of steps

答案 7 :(得分:0)

确保dataSource设置为self。

答案 8 :(得分:-2)

你必须继承 UIViewController 而不是 UITableViewController

//这是你应该怎么做的

@interface MTViewController : UIViewController


@end