Block传值解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 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。

相关文章
|
6月前
|
存储 SQL 算法
【源码解析】深入解析 pandas的Block 类中算术运算和重排实现
【源码解析】深入解析 pandas的Block 类中算术运算和重排实现
|
6月前
|
存储 SQL 数据挖掘
【源码解析】使用 Pandas 优化数据存储:深入解析 Block 合并机制
【源码解析】使用 Pandas 优化数据存储:深入解析 Block 合并机制
Block用法解析
Block代码块是对C做出的一个补充,初次体验代码块,无比的不适应。古怪的语法确实让人不易入门甚至精通。但若能够深入精通Block的使用,会给代码带来层次上的提升。Block就是一段在将来被执行的代码 定义块语法 ^[块返回值类型](形参类型1 形参1,形参类型2 形参2,.
978 0
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
71 2
|
2月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
76 0
|
2月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
62 0

推荐镜像

更多
下一篇
DataWorks