Ответ 1
В вашем раскадровке вам нужно сделать корневой вид вашего UITableViewController
a UITableView
.
Я пережил этот tutorial, "Вариант 2: Prototype Cells" Я выполнил все шаги, но следующий код дает мне ошибку:
@interface MTViewController : UITableViewController
@end
сообщение об ошибке:
экземплярный контроллер представления с идентификатором "UIViewController-BYZ-38-t0r" из раскадровки "Main", но не получил UITableView.
Вот что я пытался - я изменил UITableViewController
на UIViewController
, и ошибка исчезла. Но табличное представление остается пустым. Можете ли вы сказать мне, почему это?
В вашем раскадровке вам нужно сделать корневой вид вашего UITableViewController
a UITableView
.
Попробуйте изменить свой суперкласс на UIViewController или смените контроллер в своем раскадровке на TableView Controller
@interface MTViewController : UIViewController, UITableViewDataSource, UITableViewDelegate
@end
Перетащите новый экземпляр Table View Controller в свою раскадровку, скопируйте ячейки, созданные вами на предыдущем контроллере, в новый.
Эта ошибка произошла, вероятно, потому, что вы использовали UIViewController по умолчанию, созданный XCode, который не является UITableViewController.
У меня тоже была эта проблема. Я создал первоначально простой UIViewController
, тогда я решил скорее использовать UITableViewController
. Проблема в том, что я забыл установить идентификатор раскадровки на новом контроллере и изменить его на что-то еще на старом контроллере, иначе вы создадите экземпляр старого контроллера из раскадровки, и эта проблема возникнет.
Я встретил точно такую же проблему, как и вы. Вы, вероятно, используете UIViewController вместо UITableViewController в раскадровке.
ПРИМЕЧАНИЕ. Недостаточно только создать подкласс пользовательского UITableViewController в раскадровке. Вы увидите разницу: разницу между UIViewController и UITableViewController
Поэтому вам нужно вытащить UITableViewController из библиотеки, а затем переместить все вещи (ячейки) в нее. Не забудьте проверить привязки и автоматические макеты, если они сломаны.
И, конечно, вы не можете переместить табличное представление в корень UIViewController, оно просто так не работает. знак равно
На самом деле вы используете UIViewController, а не UITableViewController. Удалите контроллер представления по умолчанию и перетащите новый TableViewController в вашу раскадровку. Потому что ваш ViewController не имеет TableView, но пытается загрузить ячейки.
Простое решение: удалите ViewController и добавьте TableViewController
Затем вы должны изменить его имя класса на MTViewController или Ваше имя класса
убедитесь, что источник данных установлен на себя.
Вы должны подклассы UIViewController вместо UITableViewController
//Вот как вы должны это делать
@interface MTViewController : UIViewController
@end