除非我在搜索栏中点击,否则 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 中滚动