Block传值解析

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: Block传值解析

在子页面向父页面传值的时候,可以用代理传值。同样也可以用block块传值。

演示1

在ViewController1中有一个UILabel和一个UIButton,UILabel用来显示从子页面传过来的值,UIButton用来打开子页面。

在ViewController2中我们写block定义:

#import <UIKit/UIKit.h>
typedef void (^ReturnTextBlock)(NSString *showText);  //为要声明的Block重新定义了一个名字
@interface Page1 : UIViewController
@property (nonatomic, copy) ReturnTextBlock returnTextBlock; //将一个block当做一个属性来用
@end

在ViewController2页面中,返回按钮的点击代码如下:

- (IBAction)touchCancel:(id)sender {
    if (self.returnTextBlock != nil) {
     self.returnTextBlock(@"2323223");  //用block回传值
    }
    [self dismissViewControllerAnimated:YES completion:nil];
}

在ViewController1界面中,UIButton的点击代码:

Page1 *tfVC = segue.destinationViewController;
    tfVC.returnTextBlock = ^(NSString *showText) {
                self.label1.text = showText;
    };

由上面的代码我们看出block传值类似与属性传值,只不过值是一个block块代码。相当于把一个回调函数付给了子页面一个属性。

其实在代理传值的时候也类似,我们也是讲一个协议方法当做是一个属性赋值给了子页面。由此可见,Obj-C的属性可以传:对象、协议、block。

相关文章
|
25天前
|
存储 SQL 算法
【源码解析】深入解析 pandas的Block 类中算术运算和重排实现
【源码解析】深入解析 pandas的Block 类中算术运算和重排实现
|
25天前
|
存储 SQL 数据挖掘
【源码解析】使用 Pandas 优化数据存储:深入解析 Block 合并机制
【源码解析】使用 Pandas 优化数据存储:深入解析 Block 合并机制
Block用法解析
Block代码块是对C做出的一个补充,初次体验代码块,无比的不适应。古怪的语法确实让人不易入门甚至精通。但若能够深入精通Block的使用,会给代码带来层次上的提升。Block就是一段在将来被执行的代码 定义块语法 ^[块返回值类型](形参类型1 形参1,形参类型2 形参2,.
910 0
|
13天前
|
机器学习/深度学习 缓存 算法
netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
|
15天前
|
XML Java 数据格式
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
24 3
|
1天前
|
关系型数据库 分布式数据库 数据库
PolarDB-X源码解析:揭秘分布式事务处理
【7月更文挑战第3天】**PolarDB-X源码解析:揭秘分布式事务处理** PolarDB-X,应对大规模分布式事务挑战,基于2PC协议确保ACID特性。通过预提交和提交阶段保证原子性与一致性,使用一致性快照隔离和乐观锁减少冲突,结合故障恢复机制确保高可用。源码中的事务管理逻辑展现了优化的分布式事务处理流程,为开发者提供了洞察分布式数据库核心技术的窗口。随着开源社区的发展,更多创新实践将促进数据库技术进步。
10 3

推荐镜像

更多