UISearchController 中的取消按钮

Posted

技术标签:

【中文标题】UISearchController 中的取消按钮【英文标题】:Cancel Button in UISearchController 【发布时间】:2014-10-16 08:55:19 【问题描述】:

在我的项目中,我使用带有内部UISearchControllerUITableViewController 来过滤tableView 中的数据。

我过滤数据没有问题,但是当我点击 CANCEL 按钮 UISearchController 时,我需要为我的 tableView 重新加载设置一个日期,但我找不到代理方法这……

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

【问题讨论】:

【参考方案1】:

你需要设置UISearchControllersearchBar'sdelegate。完成此操作后,将正确调用添加的委托方法 searchBarCancelButtonClicked:

self.searchController.searchBar.delegate = self;

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 

【讨论】:

稍微解释一下就好了! @G.Samaras 这是 SearchBar 的委托方法 ... searchController 直接使用 searchbar 委托,所以只需在文件头中调用 UISearchBarDelegate 并委托 searchbar (self.searchController.searchBar.delegate = self;) 在 vi​​ewDidLoad 或实现文件中使用的其他方法... 然后你可以'调用 SearchBar searchBarCancelButtonClicked 的委托方法内的代码,并在里面指定应该运行取消按钮的函数。 @Gargoyle 谢谢大家!【参考方案2】:

如果实现UISearchResultsUpdating协议,可以知道activefalse时触发cancel。

func updateSearchResultsForSearchController(searchController: UISearchController) 
    if !searchController.isActive 
        print("Cancelled")
    

【讨论】:

如果你想在这里关闭,异步操作【参考方案3】:

斯威夫特 5

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

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

【讨论】:

以上是关于UISearchController 中的取消按钮的主要内容,如果未能解决你的问题,请参考以下文章

UISearchController禁用取消按钮[重复]

按下取消按钮时如何防止 UISearchController 关闭?

UISearchController 更改“取消”按钮标题

UISearchController 在点击取消按钮时关闭 VC

iOS UISearchController:等到 UISearchController 在取消搜索后被解除

UISearchController 禁用取消 UIBarButtonItem