2013-02-21 2 views
0

У меня есть UITableViewController с настраиваемыми ячейками для статического и редактируемого текста. Стандартный материал, ничего необычного.Закрытие UITableViewController, когда клавиатура закрывает ячейки, вызывает сбой

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

Проблема заключается в следующем: когда пользователь имеет курсор в ячейке UITextField и клавиатуре вверх, клавиатура закрывает три строки в виде таблицы. В верхней части контроллера вида есть кнопка отмены, которая должна отклонять контроллер вида. Когда я вызываю rejectModalViewController, клавиатура скрывается, но UITableViewController хочет обновить строки, которые находились под клавиатурой, когда вид уходит. Тем не менее, представление уже в его смерти мучается, и я получаю сбой, потому что табличное представление пытается вызвать cellForRowAtIndexPath для обновления строк, которые находятся в процессе удаления.

Я пробовал ждать, пока клавиатура скроется. Не хорошо.

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

Мне нужно какое-то событие, которое сообщает мне, что таблица закончила обновление или сообщила, что представление таблицы не запрашивает данные у делегата, или сообщит, что представление таблицы не обновляется, когда клавиатура уходит.

Или есть что-то простое, что мне не хватает.

Любая помощь?

+0

Какая ошибка возникает при ее сбоях? – TheEye

+0

- [CABasicAnimation length]: непризнанный селектор отправлен в экземпляр 0xb579130 2013-02-21 17: 23: 08.765 InsureIt [33064: c07] *** Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: '- [CABasicAnimation length ]: непризнанный селектор отправлен в экземпляр 0xb579130 ' В стеке он вызывает setText: –

+0

Как вы узнаете об аварии, потому что таблица пытается вызвать cellFForRowAtIndexPath? – TheEye

ответ

0

Если у вас есть не больше клеток, я советую вам сделать другой многоразовый идентификатор для каждого cell.That очень лучше сохранить состояние клеток после

из очереди
0

я решил свою собственную проблему. Внутри cellForRowAtIndexPath я устанавливал текст внутри UITextField для указателей, которые больше не могут существовать. То, что я сделал, чтобы исправить эту проблему, все равно создало ячейку, но прежде чем устанавливать текст внутри нее, я проверил, была ли нажата кнопка «Отмена», и если да, верните пустую ячейку.

Я надеялся, что будет лучшее решение, такое как ожидание завершения обновления, но это, похоже, не происходит.

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