iOS使用block从后往前传值
2017-04-06 10:06
387 查看
①在后面控制器的 .h文件
中声明block
// 一会要传的值为NSString类型
typedef void (^newBlock)(NSString *);
@interface NewViewController
: UIViewController
// 声明block属性
@property (nonatomic, copy) newBlock block;
// 声明block方法
- (void)text:(newBlock)block;
@end
②在后面控制器的 .m文件
中设置block
// 设置block,设置要传的值
- (void)text:(newBlock)block
{
self.block =
block;
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:YES];
if (self.block != nil)
{
self.block(@"呵呵");
}
}
③在前面控制器的 .m文件
中接收传来的值
#import "ViewController.h"
#import "NewViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
UIButton *button =
[UIButton buttonWithType:(UIButtonTypeRoundedRect)];
button.frame = CGRectMake(0, 100, 100, 100);
button.backgroundColor =
[UIColor redColor];
[button addTarget:self action:@selector(push) forControlEvents:(UIControlEventTouchUpInside)];
[self.view addSubview:button];
}
- (void)push
{
NewViewController *newVC
= [[NewViewController alloc] init];
// 接收block传来的值
newVC.block =
^(NSString *str){
NSLog(@"%@", str);
};
[self.navigationController pushViewController:newVC animated:YES];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any
resources that can be recreated.
}
@end
④最终实现效果:在控制台打印出了"呵呵"
到此,block完成传值
中声明block
// 一会要传的值为NSString类型
typedef void (^newBlock)(NSString *);
@interface NewViewController
: UIViewController
// 声明block属性
@property (nonatomic, copy) newBlock block;
// 声明block方法
- (void)text:(newBlock)block;
@end
②在后面控制器的 .m文件
中设置block
// 设置block,设置要传的值
- (void)text:(newBlock)block
{
self.block =
block;
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:YES];
if (self.block != nil)
{
self.block(@"呵呵");
}
}
③在前面控制器的 .m文件
中接收传来的值
#import "ViewController.h"
#import "NewViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
UIButton *button =
[UIButton buttonWithType:(UIButtonTypeRoundedRect)];
button.frame = CGRectMake(0, 100, 100, 100);
button.backgroundColor =
[UIColor redColor];
[button addTarget:self action:@selector(push) forControlEvents:(UIControlEventTouchUpInside)];
[self.view addSubview:button];
}
- (void)push
{
NewViewController *newVC
= [[NewViewController alloc] init];
// 接收block传来的值
newVC.block =
^(NSString *str){
NSLog(@"%@", str);
};
[self.navigationController pushViewController:newVC animated:YES];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any
resources that can be recreated.
}
@end
④最终实现效果:在控制台打印出了"呵呵"
到此,block完成传值
相关文章推荐
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- iOS开发:使用Block在两个界面之间传值
- iOS block传值的简单使用
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- iOS开发:使用Block在两个界面之间传值
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- IOS开发: 使用Block在两个界面之间传值(Block高级用法:Block传值)
- iOS中使用block传值
- iOS中使用block传值
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- iOS 使用Block实现界面间传值
- iOS开发 使用Block实现两个页面互相传值
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- iOS --- block的一些使用方法(反向传值)
- iOS开发:StoryBoard 使用Block在两个界面之间传值
- iOS开发使用Block页面间传值
- iOS--storyBoard使用Block传值
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值) 推荐