iOS block传值

96
橘居的睫毛_
2017.11.28 11:21* 字数 214

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;

}

}

为知迁移
Web note ad 1