block 逆向传值

2017-06-18  本文已影响9人  Sherlock_Jim

①在后面控制器的 .h文件 中声明block

//一会要传的值为NSString类型

typedefvoid(^newBlock)(NSString*);

@interfaceNewViewController :UIViewController

//声明block属性

@property(nonatomic,copy)newBlockblock;

//声明block方法

- (void)text:(newBlock)block;

@end

②在后面控制器的 .m文件 中设置block

//设置block,设置要传的值

- (void)text:(newBlock)block

{

self.block= block;

}

- (void)viewWillDisappear:(BOOL)animated

{

[superviewWillDisappear:YES];

if(self.block!=nil) {

self.block(@"呵呵");

}

}

③在前面控制器的 .m文件 中接收传来的值

#import"ViewController.h"

#import"NewViewController.h"

@interfaceViewController()

@end

@implementationViewController

- (void)viewDidLoad {

[superviewDidLoad];

UIButton*button = [UIButtonbuttonWithType:(UIButtonTypeRoundedRect)];

button.frame=CGRectMake(0,100,100,100);

button.backgroundColor= [UIColorredColor];

[buttonaddTarget:selfaction:@selector(push)forControlEvents:(UIControlEventTouchUpInside)];

[self.viewaddSubview:button];

}

- (void)push

{

NewViewController*newVC = [[NewViewControlleralloc]init];

//接收block传来的值

newVC.block= ^(NSString*str){

NSLog(@"%@", str);

};

[self.navigationControllerpushViewController:newVCanimated:YES];

}

- (void)didReceiveMemoryWarning {

[superdidReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

④最终实现效果:在控制台打印出了"呵呵"

到此,block完成传值

上一篇 下一篇

猜你喜欢

热点阅读