我在一个tableview中添加了一个searchBar。我也有一个导航栏,它应该出现在它下面。它工作正常,直到我点击搜索栏。当我在屏幕尺寸较大的设备(来自iPhone 6)上执行此操作时,搜索栏会隐藏在导航栏下方。它在实际的iPhone 5,5s上按预期工作。这是我初始化searchBar的方式:
searchController.searchResultsUpdater = self as UISearchResultsUpdating
searchController.dimsBackgroundDuringPresentation = false
definesPresentationContext = true
tableView.tableHeaderView = searchController.searchBar
searchController.hidesNavigationBarDuringPresentation = false
searchController.searchBar.tintColor = UIColor.black
searchController.searchBar.scopeButtonTitles = ["Device", "Person", "OS version"]
searchController.searchBar.delegate = self as UISearchBarDelegate
searchBar不应该隐藏,因为我在搜索时需要在navigationBar上进行分段控制。你知道如何解决这个问题吗?
答案 0 :(得分:2)
我解决了这个问题。这是iOS 11的问题。根据wwdc建议你应该为navigationItem添加searchBar。
if #available(iOS 11.0, *) {
self.navigationItem.searchController = self.searchController
self.navigationItem.hidesSearchBarWhenScrolling = false
} else {
tableView.tableHeaderView = searchController.searchBar
}
答案 1 :(得分:0)