甚至不确定这是否可行,但这是用例:
我有一个使用NSFetchedResultsController
来管理列表的RootView表视图。我点按一个添加按钮,其中显示AdditionViewController
。 AdditionViewController
使用单独的managedObjectContext
来创建新对象。在保存时,对象将传递回RootView,新对象(在新managedObjectContext
中)将合并到主managedObjectContext
中。然后解除AdditionViewController
,揭示RootView。
我喜欢做的事情是在合并后加载新对象推送我的DetailViewController
,这样当AdditionViewController
被解除时,全部细节观点揭晓。
如何获取刚刚添加到fetchedResultsController
的对象,以便将其传递给DetailViewController
?
仍然没有。让我试着解释一下我需要做些什么(希望如此)。如果这仍然令人困惑,请提出问题。我很难想到如何描述这个问题。
我完全清楚如何在保存新对象时按下模态添加视图下方的详细信息视图。问题是我保存的对象是它自己的fetchedReaultsController
。我将这个frc合并到主fetchedResultsController
中,所以如果我尝试将对象发送到detailview,我会崩溃,因为在模态添加视图时对象已经失效(由于合并)被解雇,详情视图调用viewWillAppear
。这就是我想要解决的问题。我怎样才能找出刚刚添加到主fetchedResultsController
的对象以便将它发送到detailViewController?
为任何可以告诉我如何从提取的结果控制器中检索最近添加的对象的人添加赏金。或者如何在不知道它的indexPath的情况下从获取的结果控制器中检索特定对象。
答案 0 :(得分:0)
以下是我在一个几乎完全相同的用例中的表现:
AdditionViewController
时,用户可以选择保存他们创建的项目或取消新项目对话框。我将用户的选择传达回RootViewController
。DetailViewController
。答案 1 :(得分:0)
对于记录,答案是在保存上下文之后获取addManagedObjectContext中对象的对象ID(因为保存后ID更改),并在合并后将该ID传递给主managedObjectContext。完整的代码如下(如果有人有更简单的方法,请告诉我)
detailViewController.object = (customObject *)[[fetchedResultsController managedObjectContext] objectWithID:[[[[addingManagedObjectContext registeredObjects] allObjects] objectAtIndex:0] objectID]];
感谢frenetisch applaudierend让我指向了正确的方向。