有人可以解释如何在iOS 8中使用搜索栏。“searchDisplayController”已弃用。

时间:2015-03-01 17:17:58

标签: ios xcode search tableview searchbar

有人请帮助我使用Objective C在iOS 8中搜索表格视图。 协议已更改,并且不推荐使用searchDisplayController。 我找到了Apple的示例代码,但无法理解它,所以不要再次粘贴相同的链接。

1 个答案:

答案 0 :(得分:1)

您使用UISearchController。要使用它,首先使用initWithSearchResultsController:对其进行初始化,然后将其传递给应该用于显示搜索结果的视图控制器实例。如果要在同一视图控制器中显示结果,也可以传入nil而不是视图控制器。

然后,您从其searchBar属性中获取搜索控制器的搜索栏,并将其添加到您的视图层次结构中,可能作为表格视图标题或其他位置。

这就是基本设置。如果您点按搜索栏,屏幕会变暗,只要您在那里输入内容,就会显示传递给初始化程序的搜索结果控制器。

为了能够对搜索栏中的更改做出反应,您可以设置它的委托属性,也可以将搜索控制器的searchResultsUpdater属性设置为实现updateSearchResultsForSearchController:的对象(通过UISearchResultsUpdating协议)。只要搜索栏中的某些内容发生变化,就会调用此方法。通常,您将在搜索结果视图控制器中实现此功能,但您也可以将其放在其他位置。

由于UISearchController是UIViewController的子类,因此您也可以像常规视图控制器一样手动呈现它,而无需将其搜索栏添加到不同的视图控制器视图中。

所有这一切都必须在代码中完成,不能在Interface Builder中设置。