美文网首页swift
swift 闭包(block)的传值

swift 闭包(block)的传值

作者: xieyinghao | 来源:发表于2019-01-18 09:59 被阅读31次
######A控制器

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let btn1 = UIButton(frame: CGRect(x: 0, y: 300, width: 100, height: 100))
        btn1.setTitle("push3", for: UIControlState.normal)
        btn1.backgroundColor = UIColor.orange
        self.view.addSubview(btn1)
        btn1.addTarget(self, action: #selector(pushVC3), for: UIControlEvents.touchUpInside)
        
    }

    @objc func pushVC3() {
        
        let vc = ThridViewController()
        /// 成功选择后将数据回调,并推出视图
        vc.backLocationString = { (address,province,city,area) in
            
            print(address,province,city,area)
        }
        self.navigationController?.pushViewController(vc, animated: true)
        
        
    }
######B控制器
lass ThridViewController: UIViewController {

    /// 返回数据回调
    public var backLocationString: ((String,String,String,String)->())?
    
    override func viewDidLoad() {
        super.viewDidLoad()

       self.title = "ThridViewController"
        
        let btn = UIButton(frame: CGRect(x: 0, y: 100, width: 100, height: 100));
        btn.backgroundColor = UIColor.red;
        self.view.addSubview(btn)
        btn.addTarget(self, action:#selector(popclick), for: UIControlEvents.touchUpInside)
        
        
    }

    @objc func popclick() {
       
        if backLocationString != nil{
            backLocationString!("aaa","bbb","ccc","ddd")
        }
        
    }
}

相关文章

  • Swift-传值坑

    Swift中block、代理、通知、单例传值 block传值 定义一个闭包实现block主要分三步: 定义一个闭包...

  • swift 闭包传值

    在oc 中,反向传值可以采用block块来实现,同样,在swift 中也有类似的闭包,下面就闭包传值进行简单的介绍...

  • swift中的block

    在OC中习惯用block来传值,而swift中,block被重新定义了一下,叫闭包; 使用的技巧:谁定义谁传值; ...

  • Swift界面传值

    Swift中界面传值的方法 主要有三种 1.代理传值2.闭包传值(即OC中的Block) 属性传值 代理传值 F...

  • iOS&Swift&OC 闭包和Block的相互转化

    一、Swift的闭包 -> OC的block 二、OC的block -> Swift的闭包

  • Swift-闭包

    闭包是自包含的功能代码块,可以在代码中使用或者用来作为参数传值。 在Swift中的闭包与OC中的block类似。 ...

  • swift 闭包(block)的传值

  • Swift的四种传值方法

    Swift中常用的四种传值方法:单例,单例,闭包(相当于OC的block传值),通知 1单例: 1>.创建单例变量...

  • Swift-闭包

    Swift 闭包 函数 ()->() Swift 中的闭包和 Objective-C 中的 block 类似,闭包...

  • swift-闭包

    闭包 ≈ block, 函数, 匿名函数 (闭包和函数都是引用类型,能改变值)(值类型不能改变值) 对上面的传的函...

网友评论

    本文标题:swift 闭包(block)的传值

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