UITableView reloadData лучшие практики - PullRequest
2 голосов
/ 14 марта 2012

Когда лучше всего вызывать [reloadData] для UITableView? viewDidAppear или viewWillAppear? Если представление выгружено, будет ли выгружаться и базовое представление таблицы?

Причина, по которой я спрашиваю, связана с некоторым поведением, которое я вижу. Допустим, представление запрашивается для перезагрузки его источника данных, но оно освобождается до того, как оно может завершиться. Сценарий будет с использованием UITabBarController и переходом к другому представлению, нежели выбранный ViewController. Итак, что происходит, так это то, что viewWillAppear вызывается, а viewDidAppear - нет (так как я ушел).

В результате ViewController освобождается (вместе с его данными модели), но если я вызываю reloadData в viewWillAppear, вызываются методы cellForRow и numberOfRows, что вызывает ошибку «deallocated instance». Имеет ли это смысл? Вы обычно вводите код, который проверяет ноль, можно ли изменить модель в любое время, когда запрашивается представление?

Ответы [ 2 ]

0 голосов
/ 15 марта 2012

Прежде чем вы получите источник данных с сервера или из любого места, вы можете отобразить табличное представление с пустой ячейкой (ячейка, которую вы можете нарисовать как веб-страница 404), когда вы получите данные, а затем перезагрузите табличное представление. не забудьте установить номер ячейки равным 1 для пустой ячейки

0 голосов
/ 15 марта 2012

Я бы загружал таблицу после загрузки представления, это позволяет создавать все объекты UIO, прежде чем связываться с ними.Не уверен, но я считаю, что таблица автоматически выгружается вместе с суперпредставлением.

Посмотрите на этот вопрос >>> Цель C - правильный способ очистки и перезагрузки UITableViewController с помощью NSMutableArray

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