您的位置:首页 > 其它

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);

}];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: