swift中的block

在OC中习惯用block来传值,而swift中,block被重新定义了一下,叫闭包;

使用的技巧:谁定义谁传值;


案例使用A、B控制器:

1~4步在B中执行,最后在A中执行;


- B控制器:

1-定义

格式: typealias 闭包名称 = (参数名称: 参数类型) -> 返回值类型

typealias  block = (str: String) -> void

2- 声明

var callBackBlock = block?()

3- 赋值

需要定义一个方法,参数是和block类型一致得闭包,并赋值给block

```

func callBackFunction ( block: (str: String) -> Void ) {

      callBackBlock = block

}

```

4- 传值

func buttonClick () {  //需要传值的方法

    if callBackBlock != nil {

        callBackBlock!( "传这个值给A")    //注意,这里是使用属性传值,不是方法

    }

}

5 - A控制器中

B.callBackFunction { (str) in

      print("这里使用传过来的值")

}

你可能感兴趣的:(swift中的block)