Почему свойство UITableViewController self.tableView имеет значение Nil, если оно представлено в UIPopoverController? - PullRequest
1 голос
/ 06 декабря 2010

У меня есть UITableViewController, основанный на nib, который представлен в UIPopoverController при работе на iPad и представлен «изначально» при работе на iPhone.

При работе на iPad свойство self.tableViewконтроллер ноль на протяжении всего своего жизненного цикла.Сообщения делегата, которые передаются в tableView как часть их нормальной работы, работают нормально и имеют ссылку на табличное представление.

На iPhone свойство установлено, и ссылка действительна, как и следовало ожидать.

Что-нибудь конкретное, что может привести к тому, что свойство self.tableView будет равно нулю?Я дважды проверил соединения в Интерфейсном Разработчике - Nib просто содержит табличное представление и связанные вещи UISearchBar.Представление таблицы в Nib установлено как представление контроллера представления.

Это на 4.2.1 на обоих устройствах.Ударяю головой об этом и не могу найти свою ошибку.

Ответы [ 2 ]

6 голосов
/ 06 декабря 2010

Я выяснил свою проблему и, конечно, это ошибка программирования.

В этом случае ошибочный @synthesize tableView вверху файла реализации генерирует конфликтующие методы получения и установки.

Извинения и спасибо тем, кто посмотрел на это.

0 голосов
/ 06 декабря 2010

Попробуйте это ... в одном из методов, возвращающих объект tableView, выполните "assert (self.view == tableView);" и посмотрим, что получится. Если assert не срабатывает, и я подозреваю, что оно не сработает ни на iPhone, ни на iPad, просто бросьте self.view в UITableView и сделайте то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...