我有完全相同的情况,我只是将一个 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 集中的第一个或最后一个对象。
希望这可以帮助。祝你好运