block用于传值 效率比代理更高 比如要把A界面的值传给B界面
(1) 定义block A界面的 .h
typedef void(^SubViewBlock)(NSString*title);
@interface A :UITableViewController
//block 变量可以作为属性
//block变量无法用retain来修饰,修饰符用copy;block变量本身的内存空间在栈上开辟,为block 赋值的函数的内存空间在堆上开辟
@property(nonatomic,copy)SubViewBlock viewBlock;
(2) 在 A界面的 .m 文件中 传值
if(_viewBlock) {//调用block
_viewBlock(_dataArray[indexPath.row]);
}
(3)在B界面接收值
A *a = [[A alloc]init];
//为block 赋值
a.viewBlock= ^(NSString*title){
NSLog(@"send value!");
self.navigationItem.title= title;
};