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

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

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

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

【问题讨论】:

    标签: uitableview cancel-button uisearchcontroller


    【解决方案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){} 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多