Некоторая помощь будет принята с благодарностью!
У меня есть пользовательская ячейка UITableView, состоящая из изображения (зеленого, оранжевого или красного) и двух меток с разными размерами шрифта. UITableView управляется NSMutableArray объектов.
UITableView разделен на три раздела: первый раздел содержит все ячейки с красным изображением, второй раздел с оранжевым, третий раздел с зеленым.
Я реализовал возможность переупорядочивать ячейки в UITableView, позволяя пользователю перетаскивать, скажем, элемент с красным изображением из красной секции в оранжевую секцию. Это перетаскивание отлично работает, и базовые данные обновляются правильно. Я знаю, что это так, потому что, если я выбираю ячейку, я перехожу к ее подробному представлению, и данные обновляются.
Однако UITableView не обновляется, пока я не перейду к деталям (или не выйду из приложения) и не вернусь! Он также обновляется, если я прокручиваю проблемную ячейку из поля зрения и снова возвращаю его в поле зрения, поэтому массив явно содержит правильные данные. Я просто не могу вызвать обновление представления!
Я пробовал следующее после моего кода для изменения базовых данных в moveRowAtIndexPath:
[self.tableView reloadData];
Однако это вызывает исключение. Справочник по языку Apple на самом деле говорит, что reloadData нельзя вызывать при вставке, удалении или анимации, что, конечно же, я и делаю. Кроме того, пытаясь просто обновить ячейку с помощью
[self setNeedsDisplay];
не работает (хотя и не падает).
Любые идеи о том, как я могу обновить UITableView? Я не могу найти метод afterMoveHasBeenCompleted: или что-то в этом роде, поэтому, если я не могу вызвать reloadData во время моего метода moveRowAtIndexPath:, то где мне его вызывать?!