Swift:navigationItem.hidesSearchBarWhenScrolling = true 时搜索栏仍然可见

Swift: searchBar still visible with navigationItem.hidesSearchBarWhenScrolling = true

在 Swift 中,我试图实现一个隐藏的 searchBar,它在滚动时变得可见,

我正在使用这个

navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = true

我试过移动上面的代码,但是无论在 ViewController 文件中的何处调用,searchBar 都是可见的。

有什么东西可以 overriding 这个功能吗? 文件中我引用 searchBarsearchController 的唯一其他代码如下:

if self.searchController.isActive && searchController.searchBar.text != "" {...

self.searchController.searchBar.placeholder = "Search \(title)"

func updateSearchResults(for searchController: UISearchController) {

if let searchText = searchController.searchBar.text, !searchText.isEmpty {
        filteredArr = defaultArr.filter {...

func configureSearchController () {

    //Setup the Search Controller
    searchController.searchResultsUpdater = self
    searchController.hidesNavigationBarDuringPresentation = true
    searchController.dimsBackgroundDuringPresentation = false
    searchController.searchBar.searchBarStyle = .minimal
    searchController.definesPresentationContext = true
    navigationItem.searchController = searchController
    navigationItem.hidesSearchBarWhenScrolling = true 
}

// I call reloadData a few times throughout as well
tableView.reloadData()

我不确定以上任何一项会如何影响 hideSearchBarWhenScrolling = true

我很困惑这是怎么发生的,有人有什么建议吗?

如有任何帮助,我们将不胜感激。

tableView 的标签 "behind" 导致了问题:

searchBar 始终可见:

searchBar 按预期隐藏: