iOS block简单用法(3)

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;

};

你可能感兴趣的:(iOS block简单用法(3))