swift 闭包(block)的传值

######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")
        }
        
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容