我有一个视图控制器,上面有两个按钮,我希望当用户按下按钮时 - 搜索栏出现,他可以写一些文字,在搜索显示器上他可以看到搜索结果。这个问题让我发疯,在我只使用tableViews之前,以及在数据源方法中检查
if (tableView == self.searchDisplayController.searchResultsTableView)
{
// searching result
}
else
{
//just tableView
}
我如何理解searchDisplayController和tableView - 是separeted vc&s,并且对于搜索我不需要有一个tableView。但我无法实现它,我尝试在网络上搜索这个问题,但是无法找到我需要的东西。如果有关于此问题的任何教程或示例代码?提前致谢
答案 0 :(得分:0)
我认为最好的理解方法是在ViewController中有两个UITableView
。一个是您的正常UITableView
,另一个是searchDisplayController.searchResultsTableView
。当您处于搜索模式时,正常的UITableView
将被停用,另一个被激活。由于两者都具有相同的Datasource和Delegate(在VC中),如果调用TableView是一个或另一个并返回正确的结果,则需要检入所有Delegate-和Datasource-方法。例如,在numberOfRowsInSection
中,您可能需要返回100作为完整数组的计数,但只有20作为已过滤数组的计数。
- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
if (aTableView == self.tableView) {
return [self.contentArray count];
} else {
return [self.searchResultArray count];
}
}
其他方法相同。