在oc 中,反向传值可以采用block块来实现,同样,在swift 中也有类似的闭包,下面就闭包传值进行简单的介绍。
这里两个界面的基本逻辑是这样的:
(点击 “下一页”,进入下一页b),点击b中的按钮,按钮的文字会显示在a的label上。
a界面:b界面:传值后的a界面:
b->a:那么就应该在b中声明闭包,a中定义闭包,并赋值给b,然后调用:
b中闭包声明:
varclosure:((title:String)->Void)!
a中闭包定义:
letsecondVC:SecondViewController=SecondViewController()
secondVC.closure= {(title:String)in
self.buttonLabel.text= title}
闭包调用:
@IBActionfuncbuttonClicked(sender:UIButton) {
lettitle = sender.currentTitle
self.closure(title: title!)
self.dismissViewControllerAnimated(true, completion:nil)
}
这就实现了简单的回调,闭包传值。