Objective-C / Xcode 6:有一个search栏填充表视图的最佳方法?

我有上面的search栏的表格视图。 我的意图是让用户在search栏中input一个查询,并在表格视图中填充结果 – 无论是当用户按下input还是在input时。

阅读了很多教程之后,我select了search栏和search栏的search显示控制器 。 但是,看起来这个控制器比一个filter存在的表视图数据工具要less一个input查询然后显示结果的工具。 这意味着我来到一个表格视图,已经有了所有的数据,并在我键入时被过滤 – 我想要的是来一个空的表视图,并填充它。

我想知道是否有一种方法来使用search栏和search显示控制器来实现我想要的效果,或者有一个首选的方法?

当使用UISearchDisplayController你将有两个UITableView 。 在您的search视图控制器中的一个。 所以假设你将UITableView的数据源连接到你的UIViewController ,只要检查哪个表被传入,如果不是用于search,就返回什么。

例如

 - (NSArray *) _sectionArrayForTable:(UITableView *) tableView { if (tableView == self.searchDisplayController.searchResultsTableView) { // Return your search results } // Show nothing when not searching return 0; } 

这两个Ray Wenderlich教程非常适合学习如何在你的UITableView中实现search。

本教程介绍了使用Objective-C的基本search栏。 本教程将介绍使用Swift的search栏。

基本上(这里是非常基本的执行级别),你会想知道你是否在search。 如果你没有search,在你的tableView:numberOfRowsInSection:方法中你可以返回0,否则返回结果的计数。 然后在你的tableView:cellForRowAtIndexPath:方法中,你可以根据结果自定义正在显示的单元格。

当文本更改时,您将需要确定显示哪个结果,并更新某个数组或字典。 实现tableview数据源方法来显示该数组/字典的内容,并在文本更改时调用reload表