ios Block学习
ios block 回调传值,回调事件,
直接上代码
在firstVC里面的tableView 点击方法 ,里面点击跳到另一个nextVC,然后返回后的firstVC后回调值
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ NextViewController *next=[[NextViewController alloc]init]; __block NextViewController *_next = next;//防止循环引用,这样写 __weak typeof(self) _self = self; next.back=^(int index){ NSLog(@"--%d",index);//回调的值打印出来 _next.data=@"asdasdasd";//传a NSLog(@"index===%d",index); [_self openAlter]; }; [self presentViewController:next animated:YES completion:NULL]; }
在nextVC里面定义block,作为一个@property传值
typedef void (^callBack)(int index); @interface NextViewController : UIViewController @property (nonatomic,assign)callBack back;
在nextVC的viewDidLoad方法调用这个block:
back(10);
当点击返回,后,值就被回调到firstVC里面的block方法里。
实现完成,block 就是匿名函数,比delegate简单实现了,传值,回调,
学习来自 http://my.oschina.net/leejan97/blog/268536