Раскадровка "Главная", но не получила UITableView при использовании UITableViewController

Я пережил этот tutorial, "Вариант 2: Prototype Cells" Я выполнил все шаги, но следующий код дает мне ошибку:

@interface MTViewController : UITableViewController

@end

сообщение об ошибке:

экземплярный контроллер представления с идентификатором "UIViewController-BYZ-38-t0r" из раскадровки "Main", но не получил UITableView.

Вот что я пытался - я изменил UITableViewController на UIViewController, и ошибка исчезла. Но табличное представление остается пустым. Можете ли вы сказать мне, почему это?

Ответ 1

В вашем раскадровке вам нужно сделать корневой вид вашего UITableViewController a UITableView.

Контроллер таблиц интерфейса Builder

Пользовательский класс построителя интерфейсa

Ответ 2

Попробуйте изменить свой суперкласс на UIViewController или смените контроллер в своем раскадровке на TableView Controller

@interface MTViewController : UIViewController, UITableViewDataSource, UITableViewDelegate

@end

Ответ 3

Перетащите новый экземпляр Table View Controller в свою раскадровку, скопируйте ячейки, созданные вами на предыдущем контроллере, в новый.

Эта ошибка произошла, вероятно, потому, что вы использовали UIViewController по умолчанию, созданный XCode, который не является UITableViewController.

Ответ 4

У меня тоже была эта проблема. Я создал первоначально простой UIViewController, тогда я решил скорее использовать UITableViewController. Проблема в том, что я забыл установить идентификатор раскадровки на новом контроллере и изменить его на что-то еще на старом контроллере, иначе вы создадите экземпляр старого контроллера из раскадровки, и эта проблема возникнет.

Ответ 5

Я встретил точно такую же проблему, как и вы. Вы, вероятно, используете UIViewController вместо UITableViewController в раскадровке.

ПРИМЕЧАНИЕ. Недостаточно только создать подкласс пользовательского UITableViewController в раскадровке. Вы увидите разницу: разницу между UIViewController и UITableViewController

Поэтому вам нужно вытащить UITableViewController из библиотеки, а затем переместить все вещи (ячейки) в нее. Не забудьте проверить привязки и автоматические макеты, если они сломаны.

И, конечно, вы не можете переместить табличное представление в корень UIViewController, оно просто так не работает. знак равно

Ответ 6

На самом деле вы используете UIViewController, а не UITableViewController. Удалите контроллер представления по умолчанию и перетащите новый TableViewController в вашу раскадровку. Потому что ваш ViewController не имеет TableView, но пытается загрузить ячейки.

Простое решение: удалите ViewController и добавьте TableViewController

Затем вы должны изменить его имя класса на MTViewController или Ваше имя класса

Ответ 7

убедитесь, что источник данных установлен на себя.

Ответ 8

Вы должны подклассы UIViewController вместо UITableViewController

//Вот как вы должны это делать

@interface MTViewController : UIViewController


@end