美文网首页iOS
Block结合typedef使用

Block结合typedef使用

作者: 说不出口的喵 | 来源:发表于2017-11-30 15:31 被阅读2次

这里举例一个Block回调修改上一下界面的背景颜色。

ViewController1 控制器1,ViewController2 控制器2

控制器1跳转到控制器2,然后在控制器2触发事件回调修改控制器1的背景颜色为红色。

ViewController2的实现

#import

@interface ViewController2 : UIViewController

/**

*  定义了一个changeColor的Block。这个changeColor必须带一个参数,这个参数的类型必须为id类型的

*  无返回值

*  @param id

*/

typedef void(^changeColor)(id);

/**

*  用上面定义的changeColor声明一个Block,声明的这个Block必须遵守声明的要求。

*/

@property (nonatomic, copy) changeColor backgroundColor;

@end

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

//声明一个颜色

UIColor *color = [UIColor redColor];

//用刚刚声明的那个Block去回调修改上一界面的背景色

self.backgroundColor(color);

}

ViewController1的实现

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

ViewController2 *vc =[[ViewController2 alloc]init];

// 回调修改颜色

vc.backgroundColor = ^(UIColor *color){

self.view.backgroundColor = color;

};

[self.navigationController pushViewController:vc animated:YES];

}

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

网友评论

    本文标题:Block结合typedef使用

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