6

当我添加 my searchBaras aheaderViewtableView,所有委托方法都会按预期触发。

  1. self.myTableView.tableHeaderView = self.searchController.searchBar;

但是,如果我从 StoryBoard 获取 searchBar IBOutlet 并将其分配给self.searchController.searchBar,则不会触发委托方法!

  1. _mySearchBar = self.searchController.searchBar;

我还尝试将其嵌入mySearchBar到视图中,然后分配:

  1. _mySearchBarView = self.searchController.searchBar; 但是没有成功!

难道我做错了什么

4

2 回答 2

0

您的第三种方法几乎可以完美地完成您想做的事情,您所要做的就是将 searchController.searchBar 添加为视图的子视图,而不是视图本身。

let searchController = UISearchController(searchResultsController: searchResultsController)
searchBarContainer.addSubview(searchController.searchBar)

*searchBarContainer 是您在 Storyboard 中的视图。

此代码由mylovemhz提供,他在此链接中回答了类似的问题:我可以将 UISearchController 与情节提要一起使用吗?

在这里为那些在搜索中来到这个线程的人重新发布它。

于 2018-01-21T21:21:23.593 回答
0

看起来这样做的唯一方法是子类化UISearchController,然后设置您的自定义searchBar

要使用自定义子类UISearchBar,子类化UISearchController并实现此属性以返回您的自定义搜索栏。

UISearchController searchBar文件

于 2016-09-29T15:17:59.637 回答