Uitableview UISearchController中的取消按钮

Uitableview UISearchController中的取消按钮,uitableview,cancel-button,uisearchcontroller,Uitableview,Cancel Button,Uisearchcontroller,在我的项目中,我使用带有内部uisearch控制器的UITableViewController来过滤我的tableView中的数据 我过滤数据没有问题,但当我单击取消按钮UISearchController时,我需要为我的表格视图重新加载创建一个日期,但我找不到用于此的委派方法 您能帮助我了解如何解决此问题吗?您需要设置UISearchController搜索栏的委托。完成此操作后,将正确调用添加的委托方法searchBarCancelButtonClicked: self.searchCont

在我的项目中,我使用带有内部
uisearch控制器的
UITableViewController
来过滤我的
tableView
中的数据

我过滤数据没有问题,但当我单击取消按钮
UISearchController
时,我需要为我的
表格视图
重新加载创建一个日期,但我找不到用于此的委派方法


您能帮助我了解如何解决此问题吗?

您需要设置
UISearchController
搜索栏的
委托
。完成此操作后,将正确调用添加的委托方法
searchBarCancelButtonClicked:

self.searchController.searchBar.delegate = self;

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
}

如果您实现了
UISearchResultsUpdating
协议,您可以知道当
活动
false
时会触发取消

func updateSearchResultsForSearchController(searchController: UISearchController) {
    if !searchController.isActive {
        print("Cancelled")
    }
}
斯威夫特5

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

extension YourClass: UISearchBarDelegate {
    func searchBarCancelButtonClicked(_ searchBar: UISearchBar){} 
}

一点解释就好了@这是搜索栏的一个委托方法。。。searchController直接使用searchbar委托,因此只需在文件头中调用UISearchBarDeleteGate,并在viewDidLoad或实现文件中使用的其他方法中委托searchbar(self.searchController.searchbar.delegate=self;)。。。然后您可以“调用SearchBar searchBarCancelButtonClicked的委托方法内部的代码,并在内部指定应该运行cancel按钮的函数。@Gargoyle非常感谢!