除非我在搜索栏中点击,否则 SearchController 不会显示未过滤的结果

Posted

技术标签:

【中文标题】除非我在搜索栏中点击,否则 SearchController 不会显示未过滤的结果【英文标题】:SearchController does not show unfiltered results unless I tap in the searchbar 【发布时间】:2018-03-10 13:58:10 【问题描述】:

在搜索所有用户的列表时,我使用 searchController 来获得良好的用户体验。 但是,我希望用户在进入 searchController 时看到未过滤的用户列表。到目前为止,正如标题中所写,未过滤的结果仅在我点击搜索栏后才会显示。在此之前,tableview 是空的。如果我然后按下内置取消按钮,未过滤的数据将保留。 搜索功能工作得很好,但是这个错误使它在用户体验方面毫无用处。

我读到 searchController 可能在一开始就覆盖了 tableview,但首先我不知道这是否属实,其次,我不知道如何避免它。

有人知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

您可以通过设置 isActive 属性来强制 UISearchController 显示自己。 https://developer.apple.com/documentation/uikit/uisearchcontroller/1618659-isactive

当用户点击托管搜索栏的搜索字段时,搜索控制器会自动显示搜索结果控制器。通常,您获取该属性的值来确定是否显示搜索结果。但是,您可以将此属性设置为 true 以强制显示搜索界面,即使用户没有在搜索字段中点击。

此属性的默认值为 false。

【讨论】:

我想通了。你的建议原来是解决方案。但是一开始并没有成功,因为尚未加载数据。所以我在加载数据闭包中添加了 searchController.isActive = true。

以上是关于除非我在搜索栏中点击,否则 SearchController 不会显示未过滤的结果的主要内容,如果未能解决你的问题,请参考以下文章

除非之前按下,否则按下运行按钮不会提高速度

Xapian - 除非向每个单词添加“”,否则搜索查询不会检索任何匹配项

在 UISearchController 中搜索时无法在 tableView 中滚动

添加“onmouseenter”(悬停)音频效果,但除非我先点击,否则它不会在 chrome 中播放?

搜索栏在点击时隐藏

除非我在shell窗口中按ENTER键,否则不会使用python创建新的文本文件