在一个TableViewController中显示两组结果

时间:2015-04-25 18:05:56

标签: ios objective-c uitableview core-data nspredicate

我知道这是一个令人吃惊的愚蠢问题,但我无法弄明白。每个答案都涉及一个UISearchBar,这不是我所拥有的。

我试图在一个TableViewController上显示两组结果。

要显示的结果

1)我managedObjectContext中设置的viewDidLoad中的一切

2)如果选择了谓词,则过滤后的结果

MyTableViewController上,我有一个弹出窗口,当我点击UIBarButtonItem上的MyTableViewController时,会实例化。在popover上,我在MyTableViewController上设置了一个谓词。

基本上,我想切换所显示的内容,并且显示切换是由我的变量是nil(一切显示)还是过滤(变量设置谓词)驱动的。

1 个答案:

答案 0 :(得分:1)

有两个NSArray属性allValuesfilteredValues。使用filteredValues数组设置所有委托/ dataSource属性。

接下来,当您第一次获得所有数据时,请执行以下操作:

self.allValues = [someController fetchAllValues];
self.filteredValues = self.allValues;
[self.myView.tableView reloadData];

最后,无论是否选择了谓词,都要更改filteredValues数组:

if (self.selectedPredicate) {
    self.filteredValues = [self.allValues filteredArrayUsingPredicate:self.selectedPredicate];
} else {
    self.filteredValues = self.allValues;
}
[self.myView.tableView reloadData];