一、block延伸:页面间反向传值

1)first页面的代码

- (void)viewDidLoad {[super viewDidLoad];[self setupBtn];self.view.backgroundColor = [UIColor whiteColor];}
- (void)setupBtn
{UIButton * btn = [[UIButton alloc]init];[btn addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];btn.backgroundColor = [UIColor blackColor];btn.frame = CGRectMake(100, 100, 100, 100);[self.view addSubview:btn];
}
- (void)buttonClick
{SecondViewController * secondVC = [[SecondViewController alloc]init];//在first页面调用block输出字符串secondVC.myBlock= ^(NSString * str){NSLog(@"%@",str);};[self.navigationController pushViewController:secondVC animated:YES];
}

2)second页面的代码

//.h文件
#import <UIKit/UIKit.h>@interface SecondViewController : UIViewController
//定义block
@property (nonatomic,copy)void (^myBlock)(NSString * str);
@end
//.m文件
- (void)setupBtn
{UIButton * btn = [[UIButton alloc]init];[btn addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];btn.backgroundColor = [UIColor blackColor];btn.frame = CGRectMake(100, 100, 100, 100);[self.view addSubview:btn];
}
- (void)buttonClick
{//通过block传值if (self.myBlock) {self.myBlock(@"haha");}[self.navigationController popToRootViewControllerAnimated:YES];
}

输出结果:

2016-02-19 11:36:55.168 03-block[983:70116] haha

参考博客:http://my.oschina.net/leejan97/blog/268536?fromerr=2UdIND3G

转载于:https://www.cnblogs.com/fengzhihao/p/5200527.html

关于OC中的block自己的一些理解(二)相关推荐

  1. 关于OC中的block自己的一些理解(一)

    一.关于block 1.block的作用:保存一段代码. 2.苹果官方推荐的一种语法,类似于C语言的函数,但是比函数更加灵活. 3.^是block语法的标识. 二.block的用法 1)无返回值无参数 ...

  2. OC中的Block属性

    Block是苹果极力推荐使用的一个知识点,它的简单实用使其在最近几年变的特别流行,尤其是在不同类之间传值的时候,比通过代理实现要方便得多.OC中的block可以借助C中的函数指针来理解,原理基本类似, ...

  3. 浅析OC中的block

    一.Block 带有 自动变量/局部变量 的匿名函数叫做 block ,又叫做 匿名函数 .代码块 . 完整形式的 Block 语法与一般的 **C语言 **函数定义相比,仅有两点不同: 没有函数名 ...

  4. 5 OC 中的三种对象

    目录 OC 中对象的分类 一  instance 对象 二 类对象 三  元类对象 总结: OC 中对象的分类 instance 对象 类对象 元类对象 一  instance 对象 内存中包含哪些信 ...

  5. 浅谈OC中Block的本质

    Block简介 block是将函数及其执行上下文封装起来的一个对象 在block实现的内部,有很多变量,因为block也是一个对象 其中包含了诸如isa指针,imp指针等对象变量,还有储存其截获变量的 ...

  6. OC中Block基本使用

    Block的说明 Block是OC语言中的一种数据类型,它是预先准备好的代码,在需要的时候就直接执行的.可以当做参数传递,也可以当做返回值,一般在实际开发中前者用的比较多.在多线程和网络也使用得相当频 ...

  7. OC中的NSArray和NSMutableArray、NSDictionary和NSMutableDictionary用法

    一:NSArray 和NSMutableArray 1: NSArray:不可变数组 NSArray是OC中使用的数组,只能用来存放OC对象,不能存放非OC对象如基本数据类型 它使不可变的,一旦初始化 ...

  8. iOS开发几年了,你清楚OC中的这些东西么!!!?

    iOS开发几年了,你清楚OC中的这些东西么!!!? 前言 几年前笔者是使用Objective-C进行iOS开发, 不过在两年前Apple发布swift的时候,就开始了swift的学习, 在swift1 ...

  9. Objective-C中的Block

    1.Block定义 可以用一句话来表示Block:带有自动变量(局部变量)的匿名函数. 在iOS中使用"^"来声明一个Block.Block的内容是包含在"{}" ...

最新文章

  1. 剑指offer--变态跳台阶--递归和循环
  2. LUNA再次夺冠,科大讯飞向世界宣告自己的实力不止于语音
  3. 100块钱买100只鸡php,使用JS计算买100只鸡问题
  4. linux禁止切换到root,linux禁止普通用户切换至root用户的实例讲解
  5. html 跟随鼠标移动线条,canvas跟随鼠标移动的随机线条
  6. mysql8.0新建用户登录_Mysql8.0 创建远程登陆账户
  7. linux下udf光盘权限问题,linux - 关于mysql udf权限的问题?
  8. Understand-4.0.877-Linux-64bit.tgz最新版本2017年源代码阅读利器,养眼theme之配置
  9. PHP中require(),include(),require_once()和include_once()有什么区别
  10. 金山发布数字办公平台
  11. 怎样对系统进行优化?
  12. [UE4]材质中的UV理解(UV是什么)
  13. L2-029 特立独行的幸福 (递归) 有代码详细解析
  14. 写了一个内核模块实现简单的类似ps命令.
  15. Cesium 角度计算
  16. 网页直播源码IM即时通讯协议
  17. 电脑突然找不到蓝牙开关了
  18. ChatGPT和DALLE-2级联后,输出效果震撼了…
  19. 10个jQuery Page Peel插件
  20. 可视化|东京奥运会可视化(二)

热门文章

  1. 二维有限元方程matlab,有限元法求解二维Poisson方程的MATLAB实现
  2. python查询oracle数据库_python针对Oracle常见查询操作实例分析
  3. @select 怎么写存储过程_MySQL4:存储过程和函数
  4. linux内存分配堆栈数据段代码段,linux – LD_PRELOAD堆栈和数据段内存分配
  5. matlab的数学函数,matlab中常见数学函数的使用
  6. 2014编程之美资格赛
  7. C++内联(inline)函数
  8. vim中的jk为什么是上下_JK的完整形式是什么?
  9. Java——n个数的全排列
  10. 汇编语言-010(循环移位ROL,ROR 、进位循环进位RCL,RCR 、有符号数溢出 、双精度移位SHLD,SHRD、SHL和ADD计算 、位运算应用)