我在导航控制器中嵌入了一个viewcontroller(BlueViewController)。
blueViewController具有一个UISearchController,该UISearchController设置为blueViewController的tableView headerView。
searchController可以正常工作,除非它处于活动状态,它会向上移动并隐藏在UINavigationController(或某个地方)后面
我试图将搜索控制器的searchBar作为子视图添加到viewController,或者放置一个UIView并将searchBar分配给该UIView,这些都不起作用
我已经尝试过此链接,但是不起作用 Strange UISearchDisplayController view offset behavior in iOS 7 when embedded in navigation bar
这是BlueViewController中的searchController
let searchController:UISearchController = {
let controller = UISearchController(searchResultsController: nil)
controller.hidesNavigationBarDuringPresentation = false
controller.obscuresBackgroundDuringPresentation = false
controller.searchBar.inputAssistantItem.leadingBarButtonGroups = []
controller.searchBar.inputAssistantItem.trailingBarButtonGroups = []
return controller
}()
在viewDidLoad
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
definesPresentationContext = true
您也可以在这里找到整个项目 https://github.com/QiquanLu/TestNavigationWithSearchController
任何提示将不胜感激,谢谢!
答案 0 :(得分:0)
对于iOS 11及更高版本,您应该在searchController
的navigationItem上设置BlueViewController
属性,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.searchController = searchController
}
不要将其添加为tableView的标题。