UISearchController 中的取消按钮
Posted
技术标签:
【中文标题】UISearchController 中的取消按钮【英文标题】:Cancel Button in UISearchController 【发布时间】:2014-10-16 08:55:19 【问题描述】:在我的项目中,我使用带有内部UISearchController
的UITableViewController
来过滤tableView
中的数据。
我过滤数据没有问题,但是当我点击 CANCEL 按钮 UISearchController
时,我需要为我的 tableView
重新加载设置一个日期,但我找不到代理方法这……
你能帮我理解如何解决这个问题吗?
【问题讨论】:
【参考方案1】:你需要设置UISearchController
searchBar's
delegate
。完成此操作后,将正确调用添加的委托方法 searchBarCancelButtonClicked:
。
self.searchController.searchBar.delegate = self;
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
【讨论】:
稍微解释一下就好了! @G.Samaras 这是 SearchBar 的委托方法 ... searchController 直接使用 searchbar 委托,所以只需在文件头中调用 UISearchBarDelegate 并委托 searchbar (self.searchController.searchBar.delegate = self;) 在 viewDidLoad 或实现文件中使用的其他方法... 然后你可以'调用 SearchBar searchBarCancelButtonClicked 的委托方法内的代码,并在里面指定应该运行取消按钮的函数。 @Gargoyle 谢谢大家!【参考方案2】:如果实现UISearchResultsUpdating
协议,可以知道active
为false
时触发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 在点击取消按钮时关闭 VC