A-B-C 三界面传值Block
2016-01-19 18:23
246 查看
第一界面需要用到值, 但是数据是在第三界面的Block 里获取到的.然后 就很笨的传了两次 3-2-1
//1.首先
第一界面的值 是第二界面传过来的, block
第二界面定义
//2.push第二界面之前
先写好执行
ScanVController *scanVC = [[ScanVController
alloc]
init];
scanVC.customVOrderDetail = ^(id responseObject){
if (responseObject) {
detailArray = [NSMutableArray
arrayWithObjects:
@{@"titleStr":@"条码:",@"detailStr":responseObject[@"HuId"]},
@{@"titleStr":@"库格:",@"detailStr":responseObject[@"Bin"]},nil];
}
};
//3.第二界面定义block
并且声明成属性(方便第一界面点出来)
//4.第二界面的值又是第三界面传来
1>
依旧 去第三界面之前
先写好执行
2> 获取到的值
赋给第一界面 (赋值时
要写判断 如果为真,赋值)
typedef void (^CustomVOrderDetail)(id);
@property (nonatomic,
copy) CustomVOrderDetail customVOrderDetail;
ReturnJudgeStr *returnStr = [[ReturnJudgeStr
alloc]
init];
returnStr.scanVCCustomVOrderA = ^(id responseObject){
if (self.customVOrderDetail) { 获取到的值 赋给第一界面 (赋值时 要写判断 如果为真,赋值)
self.customVOrderDetail(responseObject);
}
};
//5.第三界面
定义 声明blok
//6.判断
如果为真 赋值
typedef void(^ScanVCCustomVOrderA) (id );
@property (nonatomic,
copy) ScanVCCustomVOrderA scanVCCustomVOrderA;
[[ApiService shareAPIService]
GetData:@"GetHu"
parameters:dic success:^(NSURLSessionDataTask *task,
id responseObject) {
//把值传给第二界面
if (self.scanVCCustomVOrderA) {
self.scanVCCustomVOrderA(responseObject);
} failure:^(NSURLSessionDataTask *task,
NSError *error) {
NSLog(@"%@",error);
}];
//1.首先
第一界面的值 是第二界面传过来的, block
第二界面定义
//2.push第二界面之前
先写好执行
ScanVController *scanVC = [[ScanVController
alloc]
init];
scanVC.customVOrderDetail = ^(id responseObject){
if (responseObject) {
detailArray = [NSMutableArray
arrayWithObjects:
@{@"titleStr":@"条码:",@"detailStr":responseObject[@"HuId"]},
@{@"titleStr":@"库格:",@"detailStr":responseObject[@"Bin"]},nil];
}
};
//3.第二界面定义block
并且声明成属性(方便第一界面点出来)
//4.第二界面的值又是第三界面传来
1>
依旧 去第三界面之前
先写好执行
2> 获取到的值
赋给第一界面 (赋值时
要写判断 如果为真,赋值)
typedef void (^CustomVOrderDetail)(id);
@property (nonatomic,
copy) CustomVOrderDetail customVOrderDetail;
ReturnJudgeStr *returnStr = [[ReturnJudgeStr
alloc]
init];
returnStr.scanVCCustomVOrderA = ^(id responseObject){
if (self.customVOrderDetail) { 获取到的值 赋给第一界面 (赋值时 要写判断 如果为真,赋值)
self.customVOrderDetail(responseObject);
}
};
//5.第三界面
定义 声明blok
//6.判断
如果为真 赋值
typedef void(^ScanVCCustomVOrderA) (id );
@property (nonatomic,
copy) ScanVCCustomVOrderA scanVCCustomVOrderA;
[[ApiService shareAPIService]
GetData:@"GetHu"
parameters:dic success:^(NSURLSessionDataTask *task,
id responseObject) {
//把值传给第二界面
if (self.scanVCCustomVOrderA) {
self.scanVCCustomVOrderA(responseObject);
} failure:^(NSURLSessionDataTask *task,
NSError *error) {
NSLog(@"%@",error);
}];
相关文章推荐
- Oracle中*.dpm文件导入
- Android研究之手PullToRefresh(ListView GridView 下拉刷新)使用详解
- 6、React中的表单
- 面试题——OC的语言特性
- 原创的转载(转自曾经的CSDN第一名博主)
- 管理团队时,怎样保证一直做正确的事?
- Frameset使用教程
- SQL Server查询数据库中所有的表名及行数
- Android SDK Manager
- node学习之一 helloWorld
- Android MotionEvent事件分发机制源码剖析
- ACM俱乐部
- MySQL 出现 The table is full 的解决方法【转】
- SQL Server数据库同步SQL
- linux文件系统
- C++相关的复习
- 改变状态栏字体颜色
- 函数
- 14.Using the CUSTOMERS table, you need to generate a report that shows 50% of each credit amount
- C#中常用的几种读取XML文件的方法