Я столкнулся с этой проблемой и подумал о двух решениях.
Передайте данные корневому контроллеру представления в словаре (через NSNotificationCenter) и сохраните их.
Передайте ManagedObjectContext (MOC) в контроллер модального представления и позвольте MOC модального представления сделать сохранение.
Я закончил с # 2 по нескольким причинам.
- В результате становится проще, чем сохранять больше, чем простые данные.
- Создание пользовательского информационного справочника грязно.
- Диалог «Добавить объект» должен иметь возможность добавить объект , верно?
Чтобы реализовать это, в своем подклассе UIViewController просто добавьте свойство, подобное этому:
//... In your interface:
NSManagedObjectContext *moc;
//... beneath your interface:
@property (nonatomic, retain) NSManagedObjectContext *moc;
Тогда не забудьте синтезировать и выпускать при необходимости. Далее, в вашем корневом представлении, перед тем как представить представление мода, передайте контекст:
//... Create Modal VC, then...
[modalViewController setMOC:self.managedObjectContext];
// Now, present the modal VC
Бум, у тебя MOC в модальном виде. Вызовите сохранить при необходимости. Обратите внимание, что если вы забудете передать MOC, ваше приложение потерпит крах при попытке выполнить запрос на выборку.