0

这是我的结构:

我有一个名为 Element 的实体。Element 包含多个时间戳。时间戳是一个与元素有关系的实体。

Element
   Time Stamp 1
   Time Stamp 2
   Time Stamp 3,
   ...,
   ...

我的视图控制器和表视图是:

View Controller A
   TableView A // <- displays elements

View Controller B
   TableView B // <- should display all timestamps from a given element

我正在尝试做的事情:

我可以在视图控制器 A 中获取我的“元素”,并将其传递给视图控制器 B,如下所示:

Element *anElement = [_fetchedResultsController objectAtIndexPath:indexPath];

ViewControllerB *vc = (ViewControllerB *)[[self storyboard]instantiateViewControllerWithIdentifier:@"ViewControllerB"];
vc.element = anElement;

现在,在我的视图控制器 BI 上有一个 fetchedResultsController 来提供我的表视图 B。我需要这个 fetchedResultsController 显示来自传递的元素对象的所有时间戳。

我怎样才能做到这一点?

我知道我可以通过向元素添加一个唯一的日期属性来解决这个问题,这样我就可以在我的视图控制器 B 中拥有一个与该唯一日期匹配的谓词。但是,如果可能的话,我宁愿不这样做。我很难相信我需要让我的核心数据实体依赖于我需要在我的视图控制器中执行的操作。

谢谢!

4

2 回答 2

1

您应该能够将以下谓词与您的 fetchedResultsController 一起使用来获取 TimeStamp 对象。

[NSPredicate predicateWithFormat:@"element == %@", self.element];

于 2013-07-24T22:30:53.360 回答
0

如果时间戳是一个 NSSet,您可以将其传递给 ViewController B 并取消 B 中的 fetchedResultsController。

或者不是像上面那样分配实体,而是将 NSManagedObjectID 传递给 ViewController B 并基于它进行获取。如果您想在 B 中使用 fetch 控制器,这将是一种更好的方法。

于 2013-07-24T22:28:43.557 回答