2010-06-01 2 views
0

У меня есть приложение с несколькими UITableViewControllers. Теперь пользователю разрешено изменять «Источник данных». В этом случае мне нужно аннулировать (сбросить) данные в соответствующих UITableViews.Недействительный контент UITableView

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

Вопрос в том, как сбросить базовые таблицы? Я могу, конечно, установить некоторый логический флаг и вызвать UITableView: reloadData в viewWillAppear или viewDidAppear, но мне было интересно, если есть более чистый способ сделать это.

Или, может быть, я полностью упустил точку, и мне совсем не нужен NSNotificationCenter. Спасибо вам большое заблаговременно.

ответ

0

Вопрос в том, как изменить базовые таблицы ? Я могу, конечно, установить некоторый булевский флаг

Я не уверен, зачем вам здесь использовать флаг. Когда ваш контроллер просмотра получит уведомление, перезагрузите таблицу в обработчике уведомлений.

Обновление таблицы будет работать по-другому, если ваш UITableView прикреплен к NSFetchedResultsController. Это?

+0

Хотя это одна из возможностей, я исключил ее, поскольку загрузка данных - это дорогостоящая операция, которую я хочу выполнять только по требованию, то есть когда пользователь входит в это представление. Наличие нескольких таблиц перезагружает их данные только потому, что пользователь изменил источник данных слишком дорого. Пользователь может вообще не посещать эту точку зрения. – Roman

+0

Затем перезагрузите viewWillAppear. –

+0

На основании флага, как я изначально предлагал? :( – Roman

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

  • Нет связанных вопросов^_^