在OC中习惯用block来传值,而swift中,block被重新定义了一下,叫闭包;
使用的技巧:谁定义谁传值;
案例使用A、B控制器:
一二三四步在B中执行,五步在A中执行;
第一步: 定义
格式: typealias 闭包名称 = (参数名称: 参数类型) -> 返回值类型
typealias block = (str: String) -> void
第二步: 声明
var callBack = block?()
第三步: 赋值
比OC多了这一步!!
需要定义一个方法,参数是和block类型一致得闭包,并赋值给block
func callBackFunction ( block: (str: String) -> Void ) {
callBackBlock = block
}
第四步: 传值
func buttonClick () { //需要传值的方法
if callBackBlock != nil {
callBackBlock!( "传这个值给A") //注意,这里是使用属性传值,不是方法
}
}
第五步: 使用
B.callBackFunction { (str) in
print("这里使用传过来的值")
}
网友评论