如何使用 SearchBar 从服务器获取数据

Posted

技术标签:

【中文标题】如何使用 SearchBar 从服务器获取数据【英文标题】:How to use SearchBar to get data from server 【发布时间】:2014-07-17 15:50:08 【问题描述】:

我有一个由 TextField、Button 和 TableView 组成的设计。用户在 TextField 中输入文本,然后单击启动搜索的按钮。当结果从服务器返回时,结果显示在 TableView 中。

我想使用 SearchBar,而不是 TextField 和 Button。我不清楚该怎么做。我能找到的每个教程和示例都在谈论 UISearchBar UISearchDisplayController,就好像两者密不可分。我只想使用 SearchBar 来启动互联网搜索 - 与 TableView 完全没有连接:我通过 TableView 显示数据只是偶然的。那么如何从“TextField and Button”切换到 SearchBar?我想我需要的只是实现searchBarSearchButtonClicked。但这是声音设计吗?我的意思是,为什么人们总是使用 UISearchDisplayController? UISearchDisplayController 到底是什么?我不太明白它的价值。

【问题讨论】:

“什么是 UISearchDisplayController” 你读过UISearchDisplayController 的文档吗?您是否查看过使用它的示例应用程序?这是标准的。您是否曾在“通讯录”或“邮件”应用中搜索过?那是UISearchDisplayController @rmaddy 我阅读了文档,但仍不清楚。这对我来说是个问题,因为我特别想将我的 SearchBar 放在我的 NavigationBar 中,而这样做的简单方法似乎是 searchDisplayController.displaysSearchBarInNavigationBar = YES; 【参考方案1】:

您不必使用UISearchDisplayController - 这只是一个“方便”结构,它结合了表格视图和“无结果”消息、搜索栏和几个简洁的动画。对于如何通过UISearchBar 进行搜索,您有两种可能的选择 - 每次在搜索栏中输入新字符时发送异步搜索请求,同时取消先前的搜索请求以不接收其回调 - 这是昂贵的从服务器端的角度来看,但从可用性的角度来看非常简洁,或者使用您描述的方法 - 对 searchBarSearchButtonClicked 事件执行搜索。

【讨论】:

感谢您的回复。 +1。但似乎我需要了解 UISearchDisplayController 因为它显然是将我的 SearchBar 添加到我的 NavigationBar 的最简单方法。

以上是关于如何使用 SearchBar 从服务器获取数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从 tableview 单元格中搜索数据?

IOS_SearchBar搜索栏及关键字高亮

使用动态生成的数组使用搜索栏

以相同的方式在GMSAutocomplete中使用textfield而不是searchbar

SearchBar 可点击结果 - 核心数据

Android Studio,ArrayList+Search Bar,如何获取正确的Activity