美文网首页
Block开发使用场景(传值)

Block开发使用场景(传值)

作者: cjdale | 来源:发表于2018-07-02 22:56 被阅读0次

    通常我们传值分为顺传和逆传:
    顺传:给需要传值的对象定义属性来传值。
    逆传:代理, 通知,单例,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");
    }
    

    }

    相关文章

      网友评论

          本文标题:Block开发使用场景(传值)

          本文链接:https://www.haomeiwen.com/subject/czuruftx.html