NavigationBar IOS中的SearchBar
我尝试使用导航栏大标题,并添加search栏导航控制器。 search栏显示在导航标题下。 它应该隐藏,直到我刷下来。 我明白,默认行为是隐藏的,除非我设置“navigationItem.hidesSearchBarWhenScrolling = false”。 即使我添加“navigationItem.hidesSearchBarWhenScrolling = true”,它不起作用。
我创build了一个新的应用程序来testing这个function。 它embedded了ViewController和Navigation Controller。 以下是我的代码:
class ViewController: UIViewController { let searchController = UISearchController(searchResultsController: nil) override func viewDidLoad() { super.viewDidLoad() navigationController?.navigationBar.prefersLargeTitles = true navigationItem.searchController = searchController // navigationItem.hidesSearchBarWhenScrolling = true } }
我遇到过类似的情况。 我已经解决了这个问题:
1-删除有关searchController的一切
2-将UISearchBar控件添加到您的表中
3-将此searchBar控件连接到IBOutletvariables并设置委托
searchBar.delegate = self
4-只使用UISearchBarDelegate(移除UISearchResultsUpdating)并实现textDidChange方法
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { filter... reload table... }
此表格标题search栏适用于iOS 11及更早版本