The Second ViewController
#import <UIKit/UIKit.h>
typedef void (^PassBigBlock)(NSInteger dataCategory);
@interface BigTableViewController : UITableViewController
@property (nonatomic, strong)PassBigBlock passBigBlock;
@end
//block 已经开始传值了啊。。。。
bigVC.bigCategory = self.dataCategory;
//NSLog(@"********%ld",tuoVC.tuoCategory);
_passBigBlock(self.dataCategory);
The First ViewController
//传值已经结束 回调即可
NSLog(@"*******");
BigTableViewController *bigTVC = [[BigTableViewController alloc]init];
bigTVC.passBigBlock = ^(NSInteger dataCategory){
self.bigCategory = dataCategory;
[self getDataList];
};
[self.navigationController pushViewController:bigTVC animated:YES];
好吧 block 传值已经结束了啦。。。
需要特别注意的是 block 属性 必须得 为 copy
block变量默认是声明为栈变量的,为了能够在block的声明域外使用,所以要把block copy 到堆区。 所以说为了block属性声明 和实际的操作一致,最好声明为copy
(说句特别难听的, 这玩意不用copy 好像会崩啊。。。。)!!!