入门级
此处只简单举例并不深究。对于初学者来说delegate或block都不是一下子能理解的,所以我的建议和体会就是,理不理解咱先不说,我先把这个格式记住,对就是格式,delegate或block都是高度格式化的,用的多了自然而然不理解也就理解了。
B界面
1. 在B中声明一个block
typealias myBlock = (_ str :String)->Void
2.声明一个变量
var textBlock:myBlock?
3. 定义一个方法,方法的参数为和myBlock类型一致的闭包,并赋值给textBlock
func backValue(_ block: @escaping myBlock) {
textBlock = block
}
4. 调用闭包,设置你想传递的参数,调用前先判定一下,是否已实现
if textBlock != nil {
textBlock!(self.textF.text!)
}
A界面
1. 实现闭包,获取到传递的参数
seconedVC.backValue { (text) in
self.label.text = text
}
github下载地址Demo:https://github.com/liuguilin/block
网友评论