我一直在尝试通过UISearchController在我的应用中添加Searchbar。它没有出现在我的导航栏上。我添加了一个导航控制器作为根视图控制器,并没有改变任何东西,只是它的色调颜色。我尝试了一些解决方案但没有任何效果。我正在使用Swift 4.0和Xcode 9并在IOS 11上运行应用程序。下面是我的代码。提前谢谢。
if #available(iOS 11.0, *) {
let sc = UISearchController(searchResultsController: nil)
sc.delegate = self
let scb = sc.searchBar
scb.sizeToFit()
scb.heightAnchor.constraint(equalToConstant: 44.0).isActive = true
scb.tintColor = UIColor.white
self.navigationController?.navigationItem.searchController = sc
self.navigationController?.navigationItem.hidesSearchBarWhenScrolling = false
}
答案 0 :(得分:2)
我不知道为什么,但它会帮助你。
直接在NavigationItem中添加搜索控制器。
navigationItem.searchController = sc
navigationItem.hidesSearchBarWhenScrolling = false
答案 1 :(得分:0)
将搜索栏设置为tableview标题,为我工作。
self.tableView.tableHeaderView = self.searchController.searchBar
答案 2 :(得分:0)
也许删除sc.delegate = self
并放入scb.delegate = self
。
另外,我认为您只需在scb.sizeToFit()
和scb.heightAnchor.constraint(equalToConstant: 44.0).isActive = true
之间选择一个,因为一个排除了另一个。希望对您有所帮助。
答案 3 :(得分:-1)
这将解决您的问题
将搜索栏添加到导航栏的标题视图
self.navigationItem.titleView = searchBar