Как сохранить переупорядоченные строки только при нажатии кнопки Готово? - PullRequest
0 голосов
/ 14 сентября 2009

если я переупорядочиваю строки в моем табличном представлении, возможно ли сохранить результат, только если пользователь нажал кнопку «Готово»? (Переупорядочение работает отлично, но я хочу зафиксировать окончательный результат позиций, только если пользователь нажал кнопку «Готово», а не каждый раз, когда строка перемещается.)

Есть ли что-то вроде editStyle == UITableViewCellEditingCellMove в commitEditingStyle?

Или это возможно только в действии moveRowAtIndexPath?

Спасибо за помощь!

1 Ответ

1 голос
/ 14 сентября 2009

Вам нужно будет создать некоторую «редактирующую» версию вашей внутренней структуры данных, которую вы фиксируете, когда пользователь заканчивает редактирование. UITableView не отслеживает, где находятся ячейки; это зависит от вас, чтобы сделать это. Он просто говорит вам, когда пользователь просит переместить вещи. Если вы на самом деле не хотите перемещать их в этот момент, вам нужно будет отслеживать, где они действительно находятся, по сравнению с текущим порядком в TableView.

Помните, UITableViews намеренно глупы. Они не отслеживают данные. Они просто рисуют вещи. Вы отслеживаете данные (как источник данных) и сообщаете им, что рисовать, когда они спрашивают.

Как правило, я рекомендую разработчикам разделять свои фактические данные на отдельный класс модели, и UITableView должен поддерживать отдельный NSMutableArray на основе этого класса модели. В этом случае во время редактирования вы обновите массив UITableView, а когда закончите редактирование, он отправит этот массив в модель для обновления «реальных» данных.

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