typedef void(^DemoBlock)();
typedef void(^INTBlock)(int a, int b); @property(nonatomic,assign)DemoBlock demoBlock;
@property(nonatomic,assign)INTBlock initBlock; -(void)creatdemoBlock:(DemoBlock)demoBlock InitBlock:(INTBlock)initBlock{
demoBlock();
initBlock(10,20);
} [self creatdemoBlock:^{ NSLog(@"hehehe"); }InitBlock:^(int a, int b) {
NSLog(@"%d",a+b);//30
}];

  

   int (^Myblock)(int,int) = ^(int a , int b){
return a+b;
}; int(^Myblock2)() = ^(){
return 10;
}; int (^Myblock3)() =^{
return 20;
}; NSLog(@"%d",Myblock(10,20));//30
NSLog(@"%d",Myblock2());//10
NSLog(@"%d",Myblock3());//20
    self.memberVariable = ;
// NSInteger outsideVariable = 20;//如果不添加_block则block会捕获该值
//添加了_block则会跳过获取后面的值,如果没有则显示此值。
__block NSInteger outsideVariable = ;
NSMutableArray * outsideArray = [[NSMutableArray alloc] init]; void (^blockObject)(void) = ^(void){
NSInteger insideVariable = ;//不会变
NSLog(@" > member variable = %ld", (long)self.memberVariable);//
NSLog(@" > outside variable = %ld", (long)outsideVariable);//有_block:30?20
NSLog(@" > inside variable = %ld", (long)insideVariable);//
[outsideArray addObject:@"AddedInsideBlock"];
}; outsideVariable = ;
self.memberVariable = ; blockObject(); NSLog(@" > %lu items in outsideArray", (unsigned long)[outsideArray count]);

1、在需要回调的B界面:.h

//1、定义一个Block 返回字符串
typedef void(^ReturnTextStr)(NSString*str);
//2、声明一个Block
@property(nonatomic,strong)ReturnTextStr returnStrBlock;
//3、声明一个Block方法
-(void)returenText:(ReturnTextStr)block;

2、在需要回调B界面: .m

//4、
-(void)returenText:(ReturnTextStr)block{
_returnStrBlock = block;
} //5、
- (IBAction)back:(id)sender {
[self dismissViewControllerAnimated:YES completion:^{ if (_returnStrBlock != nil ) {
_returnStrBlock(self.blockTEXT.text);
} }]; }

3、接收返回值得A界面

@interface ViewController (){
BVCViewController*bvc;
} - (IBAction)gotoVC:(id)sender { bvc = [[CViewController alloc]initWithNibName:@"CViewController" bundle:nil]; // 5
[bvc returenText:^(NSString *str) {
self.A.text = str;
}]; [self presentViewController:bvc animated:YES completion:nil]; }

Block传值的更多相关文章

  1. 界面通信之block传值

    block传值有两种方式 ⽅式⼀: 使⽤block属性实现回调传值 ⽅式⼆: 在⽅法中定义block实现回调传值 方式一比较便于理解而且常用,下面介绍方式一是如何传值的 使用block属性传值和代理传 ...

  2. 属性传值,协议传值,block传值,单例传值四种界面传值方式

    一.属性传值 对于属性传值而言,相对于其它的三种 方法来说,是最基础,最简单的一种 方法,但,属性传值 有很大的局限性,因为是适用于第一个界面向第二个界面传 值,第二个向第三个界面传值等等.N界面向N ...

  3. iOS Block传值

    上个月,针对block恶补了一下,以为自己全部掌握了,其实不尽然. 昨天项目中在下载的时候用到,自己竟然不知道该从何下手,惭愧~ 情景是这个样子的:我写了个下载类,阴老师在调用时,将参数(sid,UR ...

  4. 代理和 block 传值的使用

    // // ZYViewController.h // BlockTest // // Created by yejiong on 14/11/2. // Copyright © 2014年 zzz. ...

  5. iOS 页面间传值 之 单例传值 , block 传值

    ios 页面间传值有许多,前边已经分享过属性传值和代理传值,今天主要说一下单例传值和 block 传值 单例传值:单例模式一种常用的开发的模式,单例因为在整个程序中无论在何时初始化对象,获取到的都是同 ...

  6. iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)

    iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)   使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: ...

  7. 浅谈Block传值-匿名函数(代码块)

    block传值是从后往前传值---代理也是 // 使用block时, 不能访问self, 也不能直接访问属性, self.属性, 用self调用方法; 只要这样做了, block都会对其强引用一份, ...

  8. OS笔记047代理传值和block传值

    在两个不同的控制器之间传递数据,可以使用代理传值或者block传值. 例子是一个简单通讯录. 主界面如下: 添加联系人界面 查看/编辑联系人界面:默认是查看模式,点击编辑后进入编辑模式 编辑模式 数据 ...

  9. iOS开发——代理与block传值

    一.代理传值的方法 1.Hehe1ViewController.h中 #import <UIKit/UIKit.h> @protocol Hehe1ViewControllerDelega ...

  10. Block高级用法:Block传值UI_12(3)

    1.简单复习Block的定义.赋值.调用做学习传值铺垫: //声明一个函数 无返无参void printfHello(int a);//函数的实现void printfHello(int a){    ...

随机推荐

  1. sed 命令及shell的if语句的运用实例

    if [ -f /etc/syslog.conf ];     #判断文件是否存在thensystest=`sed -n  '/^auth.info/p' /etc/syslog.conf`;    ...

  2. teamviewer现在无法捕捉屏幕,这可能是由于快速的用户切换或远程桌面会话已经断开

    解决方法:      不用远程连接过去开启teamview,直接在在电脑本机上手动开启teamview就可以了 即:如果是mstsc远程过去开启,则会有这个错误提示,需要让服务器连接显示器,手动去登录 ...

  3. oracle 认证方式

    Oracle登录的时候有两种认证方式,一种是“操作系统认证”,一种是“口令文件认证”.1.当采取操作系统认证的时候,在本地用任何用户都可以以sysdba登陆:(默认方式)2.当采取口令文件认证的时候, ...

  4. Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、

    查询所有表名:select t.table_name from user_tables t;查询所有字段名:select t.column_name from user_col_comments t; ...

  5. TJI读书笔记11-多态

    TJI读书笔记11-多态 再说说向上转型 多态的原理 构造器和多态 协变返回类型 使用继承进行设计 多态是数据抽象和继承之后的第三种基本特征. 一句话说,多态分离了做什么和怎么做(再次对埃大爷佩服的五 ...

  6. HDOJ(1728)逃离迷宫

    HDOJ 1728 http://acm.hdu.edu.cn/showproblem.php?pid=1728 BFS求最少转过的弯 #include <stdio.h> #includ ...

  7. machine learning----->谷歌Cloud Machine Learning平台

    1.谷歌Cloud Machine Learning平台简介: 机器学习的三要素是数据源.计算资源和模型.谷歌在这三个方面都有强大的支撑:谷歌不仅有种类丰富且数量庞大的数据资源,而且有强大的计算机群提 ...

  8. 树莓派(raspberry pi)学习4: 更改键盘布局(转)

    树莓派(raspberry pi)用了几次后,发现键盘老是按错,一些字符打不出来或打错 这个问题,折腾我半天.还是把心得分享一下吧 上网查,发现是键盘布局不对,树莓派(raspberry pi)是英国 ...

  9. EnterpriseLibrary 6.0中DAAB独立数据库配置文件初始化

     string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "database.config");  IC ...

  10. String、StringBuffer、StringBuilder源码解读

    序 好长时间没有认真写博客了,过去的一年挺忙的.负责过数据库.线上运维环境.写代码.Code review等等东西挺多. 学习了不少多方面的东西,不过还是需要回归实际.加强内功,方能扛鼎. 去年学习M ...