1

我不知道如何在两个标签栏项目之间共享相同的数据。一个选项卡使用 nsfetchedresultscontroller,另一个表只是一个普通视图,应该使用与我的 fetchedresultscontroller 相同的数据。

如果我有两个法线视图,我只会让我的对象成为单例,并让表格视图和普通视图使用相同的数据。

但现在我有一个 fetchresultscontroller 和一个正常的视图。我正在考虑只为我的普通视图使用另一个 fetchedresultscontroller,所以我拥有所有功能,例如获取缓存、通知等。

我知道 fetchresultscontroller 应该用于 tableview,但我想我也可以将它用于非 tableview。

有人知道我应该怎么做吗?我找不到苹果关于这件事的文档。

4

1 回答 1

0

您的数据应该与您的 viewController 或视图有关 - 也就是说,如果您遵循 MVC 样式。如果您的数据仅在一个 viewController 中可用,并且您不想将其提取到自己的类中,则在 viewController 中提供可由另一个 viewController 调用以获取数据的方法。

例如,有这样的方法:

- (NSString) getNameOfSelectedUserAtIndex:(int) index;
- (int) getCountOfSelectedUsers;
- (NSSArray) getResults;

然后从您的另一个视图控制器中,调用:

string = [fetchedresultscontroller getNameOfSelectedUserAtIndex:i];
count = [fetchedresultscontroller getCountOfSelectedUsers];
array = [fetchedresultscontroller getResults];

您必须确保将 fetchedresultscontroller 作为实例变量添加到您的其他 viewController 并可能在其 viewDidLoad 中设置它。

于 2009-09-10T18:55:32.917 回答