0

Я разрабатываю графическое приложение, которое на главном экране навигации/табуляции отображает UIView, который отображает график с использованием openGL. Под этим представлением находится UITableView, который отображает список элементов на графике и кнопку добавления.UITableView cellForRowAtIndexPath иногда не вызывается?

Иногда, когда пользователь нажимает на другую вкладку и затем возвращается на вкладку просмотра графика, представление таблицы не перерисовывается.

У меня есть метод [tableView reloadData], вызываемый в контроллерах навигации (также делегат табличного представления и источник данных) viewDidAppear.

numberOfSectionsInTableView и numberOfRowsInSection вызывается, но cellForRowAtIndexPath не поддерживает оба последних метода, возвращающих положительные значения.

Это непротиворечивая проблема, которая происходит только некоторое время, но неясно, что (если что-либо) влияет на это.

У кого-нибудь есть идеи?

[изменить] Следует просто добавить; нажатие или иное взаимодействие с табличным представлением, независимо от того, было ли это ошибкой, как описано или нет, ВСЕГДА заставляет его успешно перерисовывать.

[И снова] Немного больше информации; когда он вызывает ошибки, как описано, и вызывает первые два, но не метод cellforRowetc, он, кажется, ждет, пока пользователь не взаимодействует со своей таблицей до того, как cellForRowetc наконец будет вызван (первые два метода затем не будут вызваны) и будет перерисован.

ответ

0

У меня был идентификатор UIActivityIndicator, который начинался в отдельном потоке, который показывался, когда запросы делались в веб-службе. Когда вызовы веб-службы были завершены, уведомление было отправлено классу контроллера графа, чтобы остановить и скрыть идентификатор UIActivityIndicator. В этом методе в таблице вызывалось reloadData, было ли вид видимым или нет, что, казалось, вызывало проблему.

Вывод, похоже, заключается не в том, чтобы вызывать reloadData на столе, если это не видно.

Смежные вопросы