2016.5.30
在A控制器有一个button,点击push到B界面,B界面的输入框输入文字后,返回A界面的时候,将输入框内的文字传给A界面并在label显示。
1.先在B界面声明block属性
typedef void (^ShowTextBlock)(NSString *showText); // 为声明的block定义一个名字
@interface BController : UIViewController
@property (nonatomic, copy) ShowTextBlock showTextBlock; // 定义block的一个属性
-(void)showText:(ShowTextBlock)block; // 在A界面传进来一个block函数
2.实现B界面的block方法
-(void)showText:(ShowTextBlock)block {
self.block = block;
}
-(void)viewWillDisappear:(BOOL)animated {
if(self.showTextBlock != nil) {
self.showTextBlock(self.textField.text); // 将输入框的文字用block传出去;
}
}
3.在A界面引入B界面,并用B界面调用定义的block函数
- (void) viewDidLoad {
[super viewDidLoad];
BController *controller = [[BController alloc] init];
[controller showText:^(NSString *showText) {
self.showLabel.text = showText;
}
}