使用UISearchController
优于UISearchBarDelegate
的好处是什么?这种差异对我来说似乎有点微妙。特别是,updateSearchResults
似乎与textDidChange
基本相同。假设我们不使用新的VC来显示搜索结果,我无法理解为什么应该在UISearchController
之上添加UISearchBarDelegate
。
答案 0 :(得分:3)
来自UISearchController
的文档:
您可以将搜索控制器与现有的视图控制器配合使用。如果您有一个具有可搜索内容的视图控制器,请将
UISearchController
对象的搜索栏合并到视图控制器的界面中。当用户与该搜索栏进行交互时,搜索控制器会自动显示一个新的视图控制器,其中包含您指定的搜索结果。每个搜索控制器都提供一个UISearchBar对象,您必须将该对象合并到初始视图控制器的用户界面中。将此对象添加到包含可搜索内容的视图中。当用户点按搜索栏以输入搜索词时,搜索控制器会自动显示搜索结果视图控制器并通知您的应用搜索过程已开始。
基本上,搜索控制器处理显示搜索结果控制器的粗略工作,将搜索栏设置为标题动画,如果没有输入任何内容,则将结果显示为灰色等等。它为你做了很多繁重的工作在常规视图控制器和结果控制器之间切换时。
如果您不需要(或想要)为您完成所有有用的工作并且您想要显示自己的搜索栏,或者您的主视图控制器可以轻松显示搜索结果,那么您不需要使用UISearchController
。
这类似于在您添加自己的UINavigationController
和委托时使用UINavigationBar
以及为什么在添加自己UITabBarController
时使用UITabBar
的问题。和委托。这一切都是为了方便和用户界面的一致性。