Это зависит от того, как спроектирована ваша модель и используете ли вы базовые данные.
Основной принцип состоит в том, чтобы наблюдать свойства объектов вашей модели, которые могут измениться в подробных видах.Когда что-то меняется в подробном контроллере, как-то пометьте его ячейку таблицы как грязную.Затем, когда табличное представление снова станет видимым, получите измененную ячейку с помощью [tableView cellForRowAtIndexPath:]
и перенастройте ячейку.Метод cellForRowAtIndexPath:
будет легко возвращать nil
, если ячейка не видна, что не позволит вам тратить время на обновление ячеек, которые в ней не нуждаются.
Если вы используете Core Data (и вы, вероятно,должно быть), NSFetchedResultsController
делает почти всю эту работу за вас.Он будет наблюдать за объектами вашей модели и отправлять сообщение controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
своему делегату для каждой измененной ячейки.Затем вы можете внести необходимые изменения в табличное представление.
Я рекомендую создать новый проект Xcode, используя шаблон Навигационное приложение с Использовать базовые данные для хранения галочка отмечена галочкой.Шаблон имеет хорошую реализацию по умолчанию вышеупомянутого шаблона.