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

posted on 2014-06-11 14:39  songbai  阅读(246)  评论(0编辑  收藏  举报