点击搜索栏时,栏按钮项目将被关闭

When search bar is tapped, bar button items are dismissed

我有一个带有 search bar 和两个 UIBarButtonItems 的导航栏。这是它的样子:

问题是,当我点击 search bar 时,两个 UIBarButtonItems 被关闭,所以我无法访问它们。为此,我应该点击 "cancel",这会关闭所有搜索到的项目和 returns table view 的初始状态。当我点击 search bar:

时,我的导航栏是这样的

有办法解决这个问题吗?

与其将导航控制器与搜索栏一起使用,不如自己实现一个搜索栏。您可以让它在按下按钮时显示,也可以让它静态地位于页面上。

// be sure to add the UISearchBarDelegate to the vc 

var searchController:UISearchController!

func showSearchBar() {
    // initialize and present search bar
    searchController = UISearchController(searchResultsController: nil)
    searchController.hidesNavigationBarDuringPresentation = false
    self.searchController.searchBar.delegate = self
    present(searchController, animated: true, completion: nil)
}