实现例子由两个界面组成
A - > B 使用属性传值
B - > A 使用闭包进行反向回调传值
Swift 使用闭包(Closure)传值的原理,与OC 中使用代码块(block)传值原理,基本类似
按步骤可以如下理解:
1、定义闭包。
2、闭包赋值(传送)
3、闭包调用。
至于定义闭包应该在哪个页面定义?
想对于当前界面上执行某个操作,就在当前界面上定义,
比如:我想给通过 B 界面回调 给 A 界面上的文本框赋值,赋值操作是在 A 界面上执行的、那么闭包就应该定义在 A 界面上。既然定义在 A ,那么 B 界面就是调用闭包地方,。找准实现者,跟调用者,然后在调用者界面定义属性用于接收闭包即可;
实现代码:
一级界面 A :
import UIKit
class ViewController: UIViewController {
var textLab:UILabel?
override func viewDidLoad() {
super.viewDidLoad()
//创建一个文本显示lab
textLab = UILabel(frame:CGRectMake(80, 50, 120, 40));
textLab?.backgroundColor = UIColor.yellowColor();
textLab?.textAlignment = NSTextAlignm