将状态栏设置为隐藏
时override var prefersStatusBarHidden: Bool {
return true
}
并使用
初始化 plainsearchController
let searchController = UISearchController(searchResultsController: nil)
navigationItem.searchController = searchController
如果未经编辑,这似乎正常,但是如果您点击搜索栏,导航标题将隐藏,搜索栏和顶部边缘之间几乎没有填充,这在视觉上非常破碎。
感谢您的解决方案。
答案 0 :(得分:3)
这是iOS 11中的一个错误。要解决此问题,请在代码中添加以下行:
searchController.hidesNavigationBarDuringPresentation = false
self.definesPresentationContext = true
另一种方法是以旧的方式继续这样做,例如使搜索控制器的搜索栏成为导航项titleView
。这在iOS 11中仍然可以正常工作。