故事板“Main”,但在使用UITableViewController时没有获得UITableView
我一直在阅读本教程 ,“选项2:原型单元”我对所有步骤都表示赞同,但是,以下代码给出了一个错误:
@interface MTViewController : UITableViewController @end
错误消息是:
故事板“Main”中带有标识符“UIViewController-BYZ-38-t0r”的实例化视图控制器,但没有得到UITableView。
这是我尝试的 – 我将UITableViewController
更改为UIViewController
,错误消失了。 但是,表格视图仍然是空白的。 你能告诉我为什么会这样吗?
在故事板中,您需要将UITableViewController
的根视图设置为UITableView
。
尝试将您的超类更改为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