iOS block 回调传值

1.简单介绍一下用法在俩个Controller中使用block

MyRootViewController和PersonalCenterController 俩个VC控制器
动作是从MyRootViewController跳转到PersonalCenterController后返回时回调一个值

首先在PersonalCenterController.h中


#import "BasicViewController.h"
#import "Personal.h"

typedef void(^personalBlock)(Personal *person);//声明一个block,我这里是传递的一个对象回去,这个对象有一个属性是UIimage

@interface PersonalCenterController : BasicViewController

//声明一个属性和一个方法
@property(strong,nonatomic)personalBlock returnPerson;
-(void) returnPerson:(personalBlock)block;

@end

然后在在PersonalCenterController.m中

//这是上面声明的 方法  一定要实现的
-(void)returnPerson:(personalBlock)block
{
    self.returnPerson = block;
}

然后在MyRootViewController中点击一个按钮跳过去之后取一张图片回来给按钮当背景

#pragma mark 头像背景代理
-(void)headBtn
{
    NSLog(@"0123");
    PersonalCenterController *personal = [[PersonalCenterController alloc] init];
    [personal returnPerson:^(Personal *person) {
        UIImage *img = person.personhead;
        //_headview.btnHead是我的私有按钮
        [_headview.btnHead setImage:img forState:UIControlStateNormal];

    }];
    [self.navigationController pushViewController:personal animated:YES];
    NSLog(@"点击头像外部");
}

再在PersonalCenterController.m中

//下面的self.person是我已经提前创建好的  为的就是self.returnPerson(pers)时候pers有值(UIimage属性)
#pragma mark  返回MyRootViewController界面
-(void)backAction
{
    Personal *pers = self.person;
    self.returnPerson(pers);
    [self.navigationController popViewControllerAnimated:YES];
}

这就是对block的一个简单使用,难一点的笔者用的也不太6,希望对你们有点帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值