Swift 闭包传值及无参数闭包的使用

  1. 在二级页面创建闭包
class DetailViewController: UIViewController {

 // 定义闭包
typealias callBlock = (_ index:Int)->()
// 无参数闭包的定义
typealias otherBlock = ()->()
// 设置闭包属性
var sendValueBlock:callBlock!
var noneParmBlock:otherBlock!
}

2.二级页面调用闭包

 func dismissBtnClick()  {
    if (self.sendValueBlock != nil) {
        self.sendValueBlock(1)
    }
    
if (self.noneParmBlock != nil ){
        //无参闭包
        self.noneParmBlock()
    }
    self.dismiss(animated: true) { 
        
    }
}

3.. 在一级页面回调

       func tableView(_ tableView: UITableView, didSelectRowAt   indexPath: IndexPath) {
    let detailVc = DetailViewController()
    detailVc.sendValueBlock = {(index:Int)in
        
        print(index)
    }
  detailVc.noneParmBlock = {//无参数的闭包回调不需要 in
       print("无参闭包调用")
    }
    
        
    
    self.present(detailVc, animated: true) {
        
    }
    
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容