在一个 TableViewController 中显示两组结果
Posted
技术标签:
【中文标题】在一个 TableViewController 中显示两组结果【英文标题】:Displaying two sets of results in one TableViewController 【发布时间】:2015-04-25 18:05:56 【问题描述】:我知道这是一个非常愚蠢的问题,但我想不通。每个答案都涉及一个 UISearchBar,这不是我所拥有的。
我正在尝试在一个 TableViewController 上显示 2 组结果。
要显示的结果
1) 一切在我的managedObjectContext
中,在我的viewDidLoad
中设置
2) 过滤后的结果集(如果选择了谓词)。
在MyTableViewController
上,我有一个弹出框,当我在MyTableViewController
上单击UIBarButtonItem
时会实例化。在弹出框上,我在MyTableViewController
上设置了一个谓词。
基本上,我想切换显示的内容,该显示切换取决于我的变量是 nil
(显示所有内容)还是已过滤(变量设置谓词)。
【问题讨论】:
您有问题吗? 你写的更多的是一个规范而不是一个问题。在我看来,这只是选择正确数据源的一种情况,可以是代表所有内容的数据源,也可以是仅包含您选择的项目子集的数据源。 我写了一个详细的问题,但我没有得到任何回复。以上是“诗人物理学”版本。这就是一切。 ***.com/questions/29856403/… 你可以添加这样的东西。采用 BOOL isSearchOn 变量类型,并在您的搜索栏有一些文本时将其设为 YES。在 cellForRowAtIndex 方法中,只需执行 if(isSearchOn) else 。行数或节数相同 【参考方案1】:有两个 NSArray 属性 allValues
和 filteredValues
。使用 filteredValues
数组设置所有委托/数据源属性。
接下来,当您第一次获取所有数据时,请执行以下操作:
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];
【讨论】:
以上是关于在一个 TableViewController 中显示两组结果的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 在自定义 TableViewController 中出现 SearchBar 问题
在 uipopovercontroller 中推送一个新的 tableViewController 会导致调整弹出框的大小