滚动时禁用隐藏搜索栏

disable hiding searchBar when scrolling

我正在编码以设置搜索栏(不是来自故事板)

这是我与搜索栏相关的代码:

    var searchController = UISearchController(searchResultsController: nil)


func setupNavBar() {
    self.navigationItem.title = "Tools"
    self.navigationController?.navigationBar.prefersLargeTitles = true
     navigationItem.hidesSearchBarWhenScrolling = false
    }


func configureSearchController() {
    filteredData = toolsList.allTools
    searchController.searchResultsUpdater = self
    searchController.hidesNavigationBarDuringPresentation = false
    searchController.dimsBackgroundDuringPresentation = false
    searchController.searchBar.searchBarStyle = .minimal
    searchController.searchBar.tintColor = .purple
    tableView.tableHeaderView = searchController.searchBar
    searchController.searchBar.placeholder = "Search for tools"
}


override func viewDidLoad() {
    super.viewDidLoad()
    setupNavBar()
    tableViewConfigurations()
    configureSearchController()
}



func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
    isSearching = true
    tableView.reloadData()
}


func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
    isSearching = false
    tableView.reloadData()
}

虽然这行代码我要求在滚动时禁用隐藏搜索栏,但它仍然隐藏。

navigationItem.hidesSearchBarWhenScrolling = false

我可以请你指导我如何禁用它吗? 非常感谢

查看 Apple 的文档我发现了这个:

You must configure the searchController property for this property [hidesSearchBarWhenScrolling] to have any effect. The navigation controller hides and shows only the search bar provided by the search controller in that property.

我会尝试将 searchController 添加到 navigationItem。

@very_supercharged 谢谢 我已将 searchBar 从 table 视图转移到 navigationBar 我已经改变了:

    tableView.tableHeaderView = searchController.searchBar

    navigationItem.searchController = searchController

并且现在,searchBar 不会在滚动时隐藏。