iOS block在不同界面的回调传值
2016-01-23 18:00
417 查看
一、二级界面向一级界面的回调传值
首先,在二级界面的.h文件定义一个block的属性,方便传值
然后在一级界面的.m文件调用
回调结果如下
二、三级界面向一级界面传值
首先在二级界面和三级界面的.h文件中定义一个block的属性
然后在二级界面跳转到三级界面的方法中这样传值
最后回到的结果如下
下面是我自己写的一个小demo可以供大家参考一下
https://github.com/fuzongjian/FZJBlock.git
备注:欢迎指正!
首先,在二级界面的.h文件定义一个block的属性,方便传值
/** * 将block定义为属性 */ @property(nonatomic,copy)void(^returnString)(NSString * str);
然后在一级界面的.m文件调用
-(void)btnclicked{ secondViewController * second = [[secondViewController alloc] init]; second.returnString = ^(NSString * str){ NSLog(@"我是第一个界面的回调---%@",str); }; [self.navigationController pushViewController:second animated:YES]; }最后在二级界面的.m界面实现回调
-(void)btnclicked{ if (self.returnString) { self.returnString(@"第二个界面穿过来的值"); } [self.navigationController popViewControllerAnimated:YES]; }
回调结果如下
二、三级界面向一级界面传值
首先在二级界面和三级界面的.h文件中定义一个block的属性
/** * 将block定义为属性 */ @property(nonatomic,copy)void(^returnString)(NSString * str);
然后在二级界面跳转到三级界面的方法中这样传值
-(void)nextBtnclicked{ thirdViewController * third = [[thirdViewController alloc] init]; third.returnString = self.returnString; third.returnString = ^(NSString * str){ NSLog(@"我是第二个界面的回调---%@",str); /** * 此处是实现值的连续传递 如果不实现的话当前控制不能将值传递给上一个界面 */ self.returnString(str); }; [self.navigationController pushViewController:third animated:YES]; }
最后回到的结果如下
下面是我自己写的一个小demo可以供大家参考一下
https://github.com/fuzongjian/FZJBlock.git
备注:欢迎指正!
相关文章推荐
- iOS 证书Bug The identity used to sign the executable is no longer valid 解决方案
- iOS程序猿之MAC生成SSH keys
- iOS接入支付宝#include <openssl/asn1.h>没有发现 的问题
- IOS开发之ZBarReaderView的使用
- iOS 【资源篇】
- iOS-数据归档
- 正则表达式在iOS中的运用
- ios 中的block应用
- iOS 显示%
- iOS使用AVCaptureSession自定义相机
- IOS内存管理
- iOS中llvm-Obfuscation的配置
- 转:ios的crash框架方法论
- iOS数据保存总结
- iOS 获取手机型号
- iOS 抖动动画
- iOS里Toll-Free Bridging的桥接机制
- IOS学习笔记1
- IOS Zbar SD二维码扫描的使用
- React-Native 开发 android & ios App,共享一份代码