Удаление строк UItableview iphone с помощью userdefaults - PullRequest
0 голосов
/ 08 августа 2011

Мне нужна твоя помощь, может быть, это что-то глупое, но я не могу найти ошибку. У меня есть табличное представление и кнопка добавления, при ее нажатии я показываю модальное представление с небольшой формой, при нажатии кнопки сохранения я отправляю данные на контроллер TableView, чтобы показать их, также я использую NSUserDefaults сохранить эти данные в массиве.

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

Я делаю сохранение и читаю так:

в viewDidAppear Я читаю NSUserDefaults и получаю данные, если они существуют. в методе, который ловит данные из ModalView, которые я сохраняю в userdefaults. в методе commitEditing я читаю userdefaults, а затем удаляю строку из массива и таблицы и сохраняю это изменение в userdefaults.

Я не знаю, что я делаю неправильно, Кто-нибудь может мне помочь с этим?

Ответы [ 2 ]

0 голосов
/ 09 августа 2011

Не используйте NSUserDefaults в качестве прямого источника данных таблицы. Храните его в промежуточной модели. Так будет намного легче отлаживать.

Если у вас возникли проблемы с синхронизацией модели с пользовательскими настройками по умолчанию, звоните [[NSUserDefaults standardUserDefaults] synchronize] всякий раз, когда вы их изменяете.

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

0 голосов
/ 08 августа 2011

Используйте [self.tableView reloadData]; в viewWillAppear этого класса. Вы также можете ссылаться на этот класс в другом контроллере представления, создать для него объект и вызвать [classObject.tableView reloadData];

Всегда не забывайте перезагрузить tableView после операции добавления или операции удаления.

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