我有完全相同的情况,我只是将一个managedObjects数组传递给detailView。然后,根据他们在细节视图上按下的向上/向下箭头,我从数组中选择适当的对象。因此,它与您提供的链接中的解决方案类似。要获取对象的数组,你didSelectRowForIndexPath:方法做沿东西线以下:
// Assumes your detail view controller has a an NSArray ivar and property setup
detailViewController.alphabetObjects=[self.fetchedResultsController fetchedObjects];
该解决方案是决定性的技术含量低,我实现了它,因为我缺乏知识的时候,也就是2多年前。现在,我可以想到一些其他的方法。
- 将块回调用于由NSFetchedResultsController管理的tableView。所以,当你使用didSelectRowAtIndexPath方法时,你应该为detailViewController提供一个基本上需要indexPath的块,并从NSFetchedResultsController返回新的managedObject。
- 创建一个tableViewController实现的协议。通过协议的各种方法,您可以请求新对象以及更新detailViewController UI。即查询它是否是managedObjects集合中的第一个或最后一个对象。
希望这会有所帮助。祝你好运
谢谢你的答案。这听起来像我想要做的 - 暂时。对于一个协议,我没有足够的知识,本周没有多少时间。你能告诉我如何将我的数据从coreData(EntityAlphabet)保存到一个阵列中吗? – brush51
更新了我的回答来回答你的问题。 – timthetoolman
我已经用[self.fetchedResultsController fetchedObjects]试过了。在NSLog中,我得到的对象,但保存为数组在** detailViewController.abcArray = [self.fetchedResultsController fetchedObjects]; **是**空**。在详细视图中,我设置了伊娃和财产,无法找到我的错误。再次感谢你的帮助。 – brush51