0

这是我的另一个关于如何在 Mail-App 中进行下一个 detailView 的问题。在那里,我想知道如何用数组解决这个问题。

现在我正在使用 coreData。我有一个名为 EntityAlphabet 的实体,它具有 - 例如 - 5 个属性。属性在这里无关紧要。在 DetailView 中,我想迭代这个实体。我怎样才能做到这一点?

我想“切换”detailView 中的实体。

顺便说一句:我正在使用 NSFetchedResultsController 填充我的 tableView。

4

2 回答 2

1

我有完全相同的情况,我只是将一个 managedObjects 数组传递给 detailView。然后,根据他们在详细视图上按下的向上/向下箭头,我从数组中选择适当的对象。因此,它将类似于您提供的链接中的解决方案。要获取对象数组,请在您的 didSelectRowForIndexPath: 方法中执行以下操作:

// Assumes your detail view controller has a an NSArray ivar and property setup 
detailViewController.alphabetObjects=[self.fetchedResultsController fetchedObjects];

这个解决方案绝对是低技术的,我实施它是因为我当时缺乏知识,即 2 年前。现在,我可以想到另外几种方法。

  1. 利用块回调到由 NSFetchedResultsController 管理的 tableView。因此,当您的 didSelectRowAtIndexPath 方法时,您将为 detailViewController 提供一个块,该块基本上采用 indexPath 并从您的 NSFetchedResultsController 返回新的 managedObject。
  2. 创建 tableViewController 实现的协议。通过协议的各种方法,您可以请求新对象以及更新 detailViewController UI。即查询它是否是managedObjects 集中的第一个或最后一个对象。

希望这可以帮助。祝你好运

于 2011-12-06T18:06:16.920 回答
0

您可以以类似的方式使用 NSFetchedResultsController。尝试调用- (id)objectAtIndexPath:(NSIndexPath *)indexPath. 将您已经在- (IBAction)nextRow:(id) sender.

于 2011-12-06T17:19:59.513 回答