如何隐藏弹出的 UISearchController

How to hide the popped UISearchController

我是 swift 的初学者。我有一个包含 TableView 的 ViewController。

    let searchController = UISearchController(searchResultsController: nil) 

我为搜索实现了 UISearchController 并使用方法调用它:

    func search() {
    searchController.searchResultsUpdater = self
    searchController.hidesNavigationBarDuringPresentation = false
    searchController.dimsBackgroundDuringPresentation = false
    searchController.searchBar.sizeToFit()
    userTableView.tableHeaderView = searchController.searchBar
}

我将方法 search() 与 BarButtonItem 链接在一起。 SearchField 弹出,但是当我想关闭它时:

    searchController.isActive = false

它不会关闭它。有没有具体的方法,还是我做错了。

您正在向视图中添加一个搜索栏,但并未将其删除。

searchController.isActive = false 只是停止显示/关闭搜索结果视图并从搜索栏中移除焦点

在您当前尝试取消搜索的地方,您还需要从视图层次结构中删除搜索栏

searchController.isActive = false
userTableView.tableHeaderView = nil