block反向传值

入门级


此处只简单举例并不深究。对于初学者来说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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 闭包和block尽管有很多相似之处,但block还是有他自己的独特之外。今天学习后简单介绍一下: 假设在把A.sw...
    Jacob_Pan阅读 2,707评论 0 6
  • 两个控制器,viewcontroller---push---secondviewcontroller。。。view...
    毛毛虫惊碎花容阅读 294评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 在介绍Block之前通过一个简单的应用场景认识下Block 场景描述如下:TableView上面有多个Custom...
    黑_白_灰阅读 1,412评论 4 29
  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 5,252评论 1 23