2016.5.30
在A控制器有一個(gè)button,點(diǎn)擊push到B界面乡摹,B界面的輸入框輸入文字后再层,返回A界面的時(shí)候,將輸入框內(nèi)的文字傳給A界面并在label顯示秽五。
1.先在B界面聲明block屬性
typedef void (^ShowTextBlock)(NSString *showText); // 為聲明的block定義一個(gè)名字
@interface BController : UIViewController
@property (nonatomic, copy) ?ShowTextBlock ? showTextBlock; // 定義block的一個(gè)屬性
-(void)showText:(ShowTextBlock)block; // 在A界面?zhèn)鬟M(jìn)來(lái)一個(gè)block函數(shù)
2.實(shí)現(xiàn)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界面調(diào)用定義的block函數(shù)
- (void) viewDidLoad {
[super viewDidLoad];
BController *controller = [[BController alloc] init];
[controller showText:^(NSString *showText) {
self.showLabel.text = showText;
}
}