防止 UISearchController 在第一次击键/字符时显示 searchResultsViewController
Posted
技术标签:
【中文标题】防止 UISearchController 在第一次击键/字符时显示 searchResultsViewController【英文标题】:Prevent UISearchController from displaying searchResultsViewController on first keystroke / character 【发布时间】:2015-10-08 22:27:11 【问题描述】:我正在异步执行搜索,所以我只希望在用户按下“输入”后提交请求。
搜索界面如下所示:
但是,UISearchController
假定在第一次击键时就可以获得结果,并立即呈现searchResultsViewController
(我自己的UITableView
子类):
这不是很好,因为用户会被一大堆空行分散注意力,并且不知道为什么要显示它。
在视图控制器上设置 hidden
似乎没有帮助。
我只想在我的结果返回后显示结果窗格。在此之前如何隐藏结果视图控制器?
【问题讨论】:
【参考方案1】:UISearchControllerDelegate 有一个presentSearchController 方法,您可以实现该方法来自定义显示以延迟显示,直到结果可用。如果 UISearchController 没有一些未记录的要求,即在 presentSearchController 返回时必须显示结果控制器,这可能会起作用。
我使用的另一种方法是设置结果表,以便在您等待结果时显示一个特殊的“进行中”表格单元格。此单元格包含一个显示正在加载的内容的微调器。
【讨论】:
以上是关于防止 UISearchController 在第一次击键/字符时显示 searchResultsViewController的主要内容,如果未能解决你的问题,请参考以下文章
如何防止 UISearchController 显示导航栏?
防止 UISearchController 在 IOS8 中隐藏视图导航栏
UISearchController:searchBar 和 scopeBar 在第一次触摸事件上重叠
UISearchController 需要额外点击才能成为第一响应者