Недостаточно точно сказать, что происходит, но если бы мне пришлось угадывать, я бы подумал, что вы, вероятно, не сохраняете homeView. Обычно я бы сказал это в качестве комментария к вашему вопросу, поскольку это не совсем ответ, но у меня есть совершенно отдельный ответ:
Просто используйте UITableView
, а не UITableViewController
. Вместо того, чтобы пытаться встроить контроллер в контроллер (что довольно сложно, поскольку Apple не предоставляет необходимых инструментов для фактического изменения иерархии контроллера представления), просто сделайте так, чтобы пишущий VC поддерживал соответствующие методы делегата / dataSource и непосредственно создавал вид.
Хотя может быть логичным попытаться встроить виртуальные каналы друг в друга, за исключением встроенных контейнерных контейнеров (UINavigationController
, UITabBarController
), это действительно не работает ™, Техническая причина этого заключается в том, что внутренняя часть маршрутизации событий и обмена сообщениями зависит от правильности parentViewController, но, поскольку вы не можете установить его (setParentViewController: is private), тонны скрытых ошибок в UIKit начинают поднимать голову. Внутренние классы коллекции могут правильно устанавливать parentViewController, поэтому все работает правильно.
Кроме того, последнее. В своем вопросе вы назвали свой контроллер вида homeView
. Пожалуйста, пожалуйста, не делайте этого. Контроллер представления и представление - это разные вещи, назовите это homeViewController
. Помимо того, что многие новые разработчики для iPhone не понимают, в чем заключается различие, нет ничего более усугубляющего, чем прослеживать чужой код и осознавать, что вы предполагаете, что один тип - это другой.