美文网首页Swfit学习
Swift delegate的一般写法

Swift delegate的一般写法

作者: steveMoriya | 来源:发表于2018-08-24 11:32 被阅读0次

    前一段时间把项目全部从OC改为了Swift,这里对一些常用的功能和细节做一点笔记。

    delegate是项目里必然用到的功能,Swift语言相比OC更加简洁和清晰。

    场景:
    ViewController里面有一个子控件subView,subView包含子控件TableView。
    现在希望在点击TableView的Cell时,把Cell对应的dataModel传给ViewController,ViewController拿到dataModel执行界面跳转。

    在subView.swift文件中

    @objc protocol DidSelectedDelegate {
        func getShowInfoModel(dataModel: marketDetailHeaderM)
    }
    
    weak var selecteDelegate: DidSelectedDelegate?
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
            //取消选择效果
            tableView.deselectRow(at: indexPath, animated: false)
            
            //注,切换交易对信息后,需要重新发请求,重新清数据
            let model = models[indexPath.row]
            
            self.selecteDelegate?.getShowInfoModel(dataModel: model)
        }
    
    

    在ViewController.swift中

    //设置代理
    class HomeController: UIViewController,DidSelectedDelegate {
    
    func getShowInfoModel(dataModel: detailDataModel) {
        self.dataModel = dataModel
        }
    
    override func viewDidLoad() {
          //添加subView视图
            var subView:subview = RankListView.init(frame: CGRect(x: 0, y: 0 , width: screenWidth, height: 370))
            subview.selecteDelegate = self  //设置代理
            scrollView.addSubview(subview)
    }
    
    ``
    

    相关文章

      网友评论

        本文标题:Swift delegate的一般写法

        本文链接:https://www.haomeiwen.com/subject/srrbiftx.html