我有一个UISearchController
,当用户触摸按钮时,我会以编程方式呈现。我的问题是搜索栏与状态重叠(见截图)
我有以下代码用于展示UISearchController
func presentSearchController() {
let resultsController = ResultsViewController()
self.searchController = UISearchController(searchResultsController: resultsController)
self.searchController.searchBar.searchBarStyle = .prominent
searchController.hidesNavigationBarDuringPresentation = false
searchController.searchResultsUpdater = resultsController
self.definesPresentationContext = true
self.present(self.searchController, animated: true, completion: nil)
}
修改:我的问题不是UISearchBar overlaps status bar in iOS的重复,因为我没有直接使用搜索栏或它的框架
答案 0 :(得分:4)
我已通过删除以下行解决了该问题:
self.definesPresentationContext = true
我的方案中不需要这样做的原因是我正在调用self.present(self.searchController, animated: true, completion: nil)
更新:
虽然以上确实解决了我的问题,但是当显示SearchController时,它打破了我的navigationController中推送viewController的功能(searchController将保持在顶部而viewController被推到它下面)
在重新审视问题时,以下是我所做的修复:
添加以下
searchController.hidesNavigationBarDuringPresentation = true
self.definesPresentationContext = true
然后在故事板中启用“Under Top Bars”并启用“Under Opaque Bars”