0

这里是另一个关于我的how to next detailView like in Mail-App的问题。在那里,我想知道如何用数组解决这个问题。如何点击/遍历coreData实例

现在我正在使用coreData。我有一个名为EntityAlphabet的实体,例如 - 5个属性。这些属性在这里并不重要。 在DetailView中,我想迭代这个实体。 我该怎么做?

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

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

回答

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集合中的第一个或最后一个对象。

希望这会有所帮助。祝你好运

+0

谢谢你的答案。这听起来像我想要做的 - 暂时。对于一个协议,我没有足够的知识,本周没有多少时间。你能告诉我如何将我的数据从coreData(EntityAlphabet)保存到一个阵列中吗? – brush51

+0

更新了我的回答来回答你的问题。 – timthetoolman

+0

我已经用[self.fetchedResultsController fetchedObjects]试过了。在NSLog中,我得到的对象,但保存为数组在** detailViewController.abcArray = [self.fetchedResultsController fetchedObjects]; **是**空**。在详细视图中,我设置了伊娃和财产,无法找到我的错误。再次感谢你的帮助。 – brush51

0

您可以以类似的方式使用NSFetchedResultsController。尝试拨打- (id)objectAtIndexPath:(NSIndexPath *)indexPath。将它传递给您已在- (IBAction)nextRow:(id) sender中使用的newIndexPath。