在 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都是我的数据图中的对象(反向关系,我可以通过objectC从objectD查询回objectA)
引发以下错误消息:
Assertion failure in -[UINavigationController popToViewController:transition:], /SourceCache/UIKit_Sim/UIKit-984.38/UINavigationController.m:1807
这里有两个问题:
- 如果两个对象不同,为什么它们具有相同的名称?反向关系无法取回我用来初始化 MyViewController 的 objectA?
- 你平时是怎么做popToViewController的?如何实现保存/加载导航控制器的当前状态,以便当应用程序退出时,我可以重新加载导航控制器?最佳实践是什么?