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;

};

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,216评论 30 472
  • 前言 Blocks是C语言的扩充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了这...
    小人不才阅读 3,787评论 0 23
  • 307、setValue:forKey和setObject:forKey的区别是什么? 答:1, setObjec...
    AlanGe阅读 1,592评论 0 1
  • 最近因为学业太重,需要长时间坐在那里看书,于是身体就开始给我唱反调,不得已我开始了夜跑,没想到不仅可以缓解我的背部...
    不吃番茄会死星人阅读 193评论 0 2
  • 不同版本的访问是通过 header中的 Accept 去控制(需要先开启API_STRICT):需要注意的是Acc...
    Yaococo88阅读 428评论 0 1