代码块传值

来源:互联网 发布:淘宝买aj哪家店好 编辑:程序博客网 时间:2024/05/17 05:00

代码块传值

代码块传值三步走:

// A界面创建B界面, B界面把背景颜色传回给A界面


实现:

》第一步

声明代码块变量,并声明set方法

    @property (nonatomic,strong)void (^changeBackColor)(UIColor *color);


- (void)setChangeBackColor:(void (^)(UIColor *))changeBackColor;

三小步:

> 模拟要实现的功能方法

    //模拟要实现的功能

        - (void)changeBackColor:(UIColor *)color{

            self.view.backgroundColor = color;

        }

  > 将方法转为函数

// 将方法转为函数

        void changeBackColor(UIColor *color){

            self.view.backgroundColor = color;

        }

  > 将函数转为代码块

// 将函数转为代码块

        void (^changeBackColor)(UIColor *color) = ^(UIColor *color){

            self.view.backgroundColor = color;

        };


》第二步

代码块的调用

    // 代码块的调用,设置背景

    if (_changeBackColor) {// 判断代码块是否为空

        NSArray *colors = @[[UIColoryellowColor],

                            [UIColorblueColor],

                            [UIColorgreenColor]];

        // 代码块的调用

//产生随机数arc4random()%3

        _changeBackColor(colors[arc4random()%3]);

    }


》第三步

     设置代码块中具体操作

    [mVC setChangeBackColor:^(UIColor *color) {

        self.view.backgroundColor = color;

    }];


0 0