22

在我的项目中,我使用UITableViewController带有内部的 aUISearchController来过滤tableView.

我过滤数据没有问题,但是tableView当我单击“取消”按钮时,我需要确定重新加载的日期,UISearchController但我找不到为此的委托方法......

你能帮我理解如何解决这个问题吗?

4

3 回答 3

52

您需要设置UISearchController searchBar's delegate. 完成此操作后,searchBarCancelButtonClicked:将正确调用添加的委托方法。

self.searchController.searchBar.delegate = self;

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
}
于 2014-10-21T01:40:12.927 回答
19

如果你实现UISearchResultsUpdating了协议,你可以知道 cancel 是在 is 时触发activefalse

func updateSearchResultsForSearchController(searchController: UISearchController) {
    if !searchController.isActive {
        print("Cancelled")
    }
}
于 2016-02-19T07:07:00.313 回答
2

斯威夫特 5

searchBar.delegate = self
.......

extension YourClass: UISearchBarDelegate {
    func searchBarCancelButtonClicked(_ searchBar: UISearchBar){} 
}
于 2019-12-19T06:24:29.553 回答