Closure

2016-05-09  本文已影响15人  FishSha

闭包回调在于从A跳转到B时,将对A赋值的函数对象传给B,在需要赋值的时候,B调用该函数对象即可。

E.G.  

//A类,申明一个赋值方法

func setName(textField:String) {

self.textField1.text= textField

}

//B类,申明一个与A类相同的闭包类型

typealias closure = (name:String)->Void

var closureType:closure?

override func prepareForSegue(segue:UIStoryboardSegue, sender:AnyObject?) {

if segue.identifier=="toBViewController"{

let vc2: ViewController2= segue.destinationViewController as! ViewController2

//A类,在跳转的时候将B类的闭包赋值A类上面的赋值方法

vc2.closureType setName

}

}

//在B类需要赋值给A类的时候直接调用对应的closure方法即可

@IBActionfunctoViewController3(sender:UIButton) {

closureType!(name:"zhangsan")

self.dismissViewControllerAnimated(true, completion:nil)

}

上一篇下一篇

猜你喜欢

热点阅读