ios - 单击 + Swift 预加载 UISearchBar 显示结果

标签 ios objective-c swift uisearchbar uisearchdisplaycontroller

我正在 iOS 7 上使用 SearchBar。在我的 ViewController 中,我在 viewDidLoad()

中编写了此代码
searchDisplay = UISearchDisplayController(searchBar: self.searchBar, contentsController: self)
searchDisplay?.searchResultsDataSource = self
searchDisplay?.searchResultsDelegate = self

当我单击搜索文本字段时, View 会发生变化,这就是我所看到的

enter image description here

仅当我开始输入时,我才会看到如下所示的行:

enter image description here

问题:我想在第一次单击搜索文本字段时预加载搜索结果。我怎样才能做到这一点?

  • 我不想传递""。这将预加载搜索结果,但是当用户按下后退按钮时, View 将类似于图 1
  • 有没有办法覆盖搜索栏。如果是,那么有人可以指导我如何进一步进行。 我正在寻找指导而不是确切的代码。

调试显示数据源方法被调用三次,但单击搜索栏文本字段时不显示任何内容

我使用的是 iOS 7 和 Xcode 7。请帮助我解决错误的地方...

最佳答案

我不太确定您到底想做什么,但以下是可以回答您的问题的方法:

第一:

当用户单击搜索栏时调用此函数。您可以使用它来编辑 searchBar 本身以开始使用不同的搜索栏进行搜索,或者调用 self.tableView.reloadData():

   func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool{

}

第二:

如果 searchText = ""在 tableView 中有行,则返回空的 UITableViewCell:

    if searchBar.text == ""{
return UITableViewCell()
}

关于ios - 单击 + Swift 预加载 UISearchBar 显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32546609/

相关文章:

swift - JSQMessageViewController 打开时崩溃

ios - Swift,无法使用 'deep link' 打开第二个应用程序

swift - 我可以更改打印机 View Controller 中的份数吗?如果是的话怎么办?

ios - 删除具有一对多关系的实体

ios - 增加 uitableviewcell 高度同时增加内部 UITextView

iphone - UIPickerView 编程示例?

objective-c - 将 GLfloat [] 数组转换为 GLfloat * 数组

ios - POST 请求响应 400

iOS - 在不使用 UIBarButtonItem 的委托(delegate)方法的情况下显示/隐藏 UISplitViewController

ios - ios开发中的WSDL webservice