在UISearchController
之上使用UISearchBarDelegate
有什么好处?在我看来,这种差别似乎很微妙。特别是,updateSearchResults
在本质上似乎与textDidChange
相同。假设我们不使用新的VC来显示搜索结果,我不明白为什么要在UISearchController
的基础上添加UISearchBarDelegate
。
发布于 2018-06-12 16:22:25
来自UISearchController
的文档
您可以同时使用搜索控制器和现有的视图控制器。当您有一个具有可搜索内容的视图控制器时,将
UISearchController
对象的搜索栏合并到视图控制器的接口中。当用户与该搜索栏交互时,搜索控制器将自动显示一个新的视图控制器和您指定的搜索结果。 每个搜索控制器都提供一个UISearchBar对象,您必须将该对象合并到初始视图控制器的用户界面中。将此对象添加到包含可搜索内容的视图中。当用户按下搜索栏输入搜索词时,搜索控制器会自动显示搜索结果视图控制器,并通知应用程序搜索过程已经开始。
基本上,搜索控制器处理显示搜索结果控制器、将搜索栏动画到标题、如果没有输入结果就将结果灰度化等基本工作。在常规视图控制器和结果控制器之间切换时,它为您做了大量的繁重工作。
当您不需要(或希望)完成所有这些有用的工作,并且希望显示自己的搜索栏时,或者您的主视图控制器可以轻松地显示搜索结果,那么您就不需要使用UISearchController
了。
这类似于询问当您可以添加自己的UINavigationBar
和委托时为什么要使用UINavigationBar
,或者当您可以添加自己的UITabBar
和委托时为什么要使用UITabBarController
。这都是一个方便和用户界面一致性的问题。
https://stackoverflow.com/questions/50827485
复制