首页 > 解决方案 > UISearchController 按下后改变视图

问题描述

我目前正在创建我的第一个 Swift 应用程序,并且我实现了一个搜索栏,例如

private func addSearchBar() {
    let searchController = UISearchController(searchResultsController: nil)
    
    navigationItem.titleView = searchController.searchBar
    definesPresentationContext = true
}

显然除了显示搜索栏之外没有其他逻辑,但我很好奇是否有办法做到这一点,所以当用户按下搜索栏时,它只会切换到另一个视图。我已经能够使用 UIButtons 成功实现更改视图,但我对 UISearchController 不熟悉,如果可能的话,我希望它像 UIButton 一样工作。谢谢!

标签: swiftxcodeuser-interfaceuibuttonuisearchcontroller

解决方案


首先将搜索栏的委托设置为您的视图控制器。在你的情况下

searchController.searchBar.delegate = self

然后符合UISearchBarDelegate并添加以下方法以检测何时点击搜索栏。

func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
    // your code to show another view or view controller
}

推荐阅读