Block开发使用场景(传值)

2018-07-02  本文已影响0人  cjdale

通常我们传值分为顺传和逆传:
顺传:给需要传值的对象定义属性来传值。
逆传:代理, 通知,单例,block等。
此篇文章我们介绍Block用于逆向传值。

假设场景:由A控制器push到B控制器, B控制修改了一个字符串的值,需要传值给A控制器。

1、B控制器中定义block属性
@property (nonatomic,strong) void(^passValueBlock)(NSString *value);
2、A控制器中给B控制器block属性赋值
SecondViewController *secondVc = [[SecondViewController alloc] init];
secondVc.passValueBlock = ^(NSString *value) {
    
};
[self.navigationController pushViewController:secondVc animated:YES];

此处SecondViewController 就相当于B控制器

3、在B控制器需要传值的逻辑控制代码中调用block
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
if (self.passValueBlock) {
    self.passValueBlock(@"name");
}

}

上一篇下一篇

猜你喜欢

热点阅读