tableView和普通视图(相同的数据对象)

时间:2009-09-10 17:39:30

标签: ios iphone object share nsfetchedresultscontroller

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

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

但现在我有一个fetchresultscontroller和一个普通的视图。我正在考虑使用另一个fetchedresultscontroller进行普通视图,因此我拥有所有功能,例如获取缓存,通知等等。

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

有人知道我应该做什么?我无法在这件事上找到苹果的文件。

1 个答案:

答案 0 :(得分:0)

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

例如,有这样的方法:

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

然后从你的另一个viewController中调用:

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

您必须确保将fetchedresultscontroller作为实例变量添加到另一个 viewController并将其设置在viewDidLoad中。