您的当前位置:首页正文

swift 中Closure的使用,相当于OC 中的Block

来源:花图问答

由B控制器反向传值到A控制器

第一步:
在B 控制器中定义一个Closure

///申明一个Closure
typealias BackToAControllerClosure = (String) -> Void

///定义一个Closure
var backClosure: BackToAControllerClosure?

在B界面完成操作之后 需要传值告诉A界面

if self.backClosure != nil {
                        self.backClosure!("传递数据")
                        self.navigationController?.popViewControllerAnimated(true);
                    }

第二步:
A控制器接受B界面返回的值

let dest = B()
dest.backClosure = {
                        (backStr: String) -> Void in
                        print("----\(backStr)");
                        ///接受B界面的值 进行相应的操作
                    }
self.navigationController?.pushViewController(dest, animated: true);