IOS Swift 如何将搜索功能包含在另一个功能中

标签 ios swift swift3 uisearchbar

我有 2 个 Controller ,一个是 subview 。 MainController 可以访问 SearchBar 属性,而 SubViewController 不能。主 Controller 中有一个 SearchBar 函数,我想在 SubView Controller 中调用它就是这个函数

      // MainController
      func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
        // Stop doing the search stuff
        // and clear the text in the search bar
        searchBar.text = ""
        // Hide the cancel button
        searchBar.showsCancelButton = false
        searchBar.endEditing(true)
        Popup.Close_View()
      }

我想做的是将上面的函数包装在另一个类似这样的函数中

  func Selected_Location() {
        searchBarCancelButtonClicked(SearchBar)
    }

这样在我的 SubView Controller 中我可以做

// SubView Controller
   let Select_Close = MainController()

   Select_Close.Selected_Location()

我是 Swift 的新手,如前所述,我如何获得 searchBarCancelButtonClicked 函数并在另一个函数中调用它?我尝试过以多种方式做到这一点,例如

  func Selected_Location() {
        searchBarCancelButtonClicked(_ searchBar: UISearchBar)
    }

    func Selected_Location() {
        searchBarCancelButtonClicked(searchBar)
    }

同样,我的 SubView Controller 没有访问 UISearchBar 的权限,因此我尝试从 SubView 中调用 SearchBar 关闭函数。

最佳答案

在Subview中,保留MainViewController的弱引用,然后调用mainviewcontroller的一个方法searchBarCancel

class MainViewController:UIViewController {
    var subViewController: SubViewController
    func searchBarCancel(){
        searchBarCancelButtonClicked(self.searchBar)
    }
    func func2(){
        subViewController.mainController = self
    }
}

class SubViewController:UIView {
    weak var mainController: MainViewController?
    func Selected_Location() {
        mainController!.searchBarCancel()
    }
}

关于IOS Swift 如何将搜索功能包含在另一个功能中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40622634/

相关文章:

ios - 检查可选项时使用的类型的非可选表达式

ios - 如何处理高度依赖当前位置的应用程序中的位置拒绝?

ios - 为什么从 WatchKit 扩展发送消息到 iOS 并返回回复这么慢?

swift - 如何使用 Alamofire 从相机胶卷上传图像

ios - 如何将我的 UICollectionViewFlowLayout 更改为具有水平滚动的垂直列表

ios - 如何获取动画 GIF 图像的当前图像?

ios - 如何将 ImageSlideshow 库与 sdwebimage 库一起使用

iphone - 查找实体中最早的日期,以计算从现在到那时的天数

ios - 在框架错误中包含非模块化 header - 如何使传递依赖项与 cocoapods 一起工作?

Swift Perfect 不加载图像或 css