В CoreData у меня есть граф данных с некоторыми сущностями, и каждый объект заполняется в контроллере представления, на определенном экране, я хочу выдвинуть несколько (> 1) объектов, чтобы вернуться к определенному экрану.
Я попытался вывести контроллеры представления из стека навигации с помощью следующих строк кода:
ObjectA *objectA = objectD.objectC.objectA;
NSLog(@"objectA name: %@", objectA.name);
MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil withObjectA:objectA];
[self.navigationController popToViewController:controller animated:YES];
[controller release];
ObjectA, objectB, objectC, objectD - все объекты из моего графа данных (с обратной зависимостью я могу запросить объект A от objectD до objectC)
Появляется следующее сообщение об ошибке:
Assertion failure in -[UINavigationController popToViewController:transition:], /SourceCache/UIKit_Sim/UIKit-984.38/UINavigationController.m:1807
Здесь есть два вопроса:
- Если два объекта различны, почему они имеют одинаковое имя? обратная связь не может вернуть объект A, в котором я использовал для инициализации MyViewController?
- Как у вас обычно работает popToViewController? Как реализовать сохранение / загрузку текущего состояния моего контроллера навигации, чтобы при выходе из приложения я мог перезагрузить контроллер навигации? Каковы лучшие практики?