当我将searchBar
添加为headerView
tableView
时,所有委托方法都会按预期触发。
self.myTableView.tableHeaderView = self.searchController.searchBar;
但是,如果我从StoryBoard中获取searchBar IBOutlet并将其分配给self.searchController.searchBar
,则不会触发委派的方法!
_mySearchBar = self.searchController.searchBar;
我还尝试将mySearchBar
嵌入到视图中然后分配:
_mySearchBarView = self.searchController.searchBar;
但没有成功! 我做错了什么
答案 0 :(得分:0)
看起来执行此操作的唯一方法是创建UISearchController
的子类,然后设置自定义searchBar
:
要使用
UISearchBar
的自定义子类,子类UISearchController
并实现此属性以返回自定义搜索栏。
答案 1 :(得分:0)
你的第三种方法几乎可以完成你想做的事情,你所要做的就是将searchController.searchBar添加为视图的子视图,而不是视图本身。
let searchController = UISearchController(searchResultsController: searchResultsController)
searchBarContainer.addSubview(searchController.searchBar)
* searchBarContainer是您在Storyboard中的视图。
此代码由 mylovemhz 提供,他在此链接回答了类似的问题:Can I use a UISearchController with a storyboard?
将此处重新发布给那些在搜索时来到此主题的人。