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,希望对你们有点帮助