在点击搜索按钮之前,不要显示UISearchController表

时间:2016-12-20 18:53:16

标签: ios uisearchcontroller

似乎UISearchController的默认行为是在UISearchBar中输入字符后立即显示空表。我正在实施的搜索不会在输入字符时进行搜索,但会在点按“搜索”按钮时进行搜索。

因此,在实际搜索发生之前,我不想显示空表。我该如何实现这一目标?

我试图将表设置为隐藏,直到点击搜索按钮,但看起来似乎没有显示的空表与UISearchController表相同,因为没有数据源方法是在那张桌子上喊道。

2 个答案:

答案 0 :(得分:1)

您看到的空表视图来自您的搜索结果控制器,当用户在搜索栏中输入文本时,UISearchController会“立即”显示该视图。 (source

隐藏搜索结果控制器中的表格视图,直到您准备好显示它为止,这似乎是最简单的解决方案。但正如您所发现的,在显示搜索结果控制器时,UISearchController将根视图上的isHidden属性的值设置为false。在我的调试会话中,每次搜索栏开始编辑或搜索文本发生更改时,UISearchController都会通过调用名为_updateVisibilityOfSearchResultsForSearchBar:的私有方法来执行此操作。

您可以通过在搜索结果控制器中添加表视图作为根视图的子视图(然后根据需要隐藏或显示表视图)或通过调整{{1}的值来解决该问题根视图的属性(与alpha不同,可以设置动画)。

答案 1 :(得分:0)

在这种情况下,您可以解决方法,例如创建UIView并在tableview上添加子视图以使其隐藏。用户点击搜索按钮后删除该视图。