iOS之 block,代替代理作为回调函数

最近在弄一个视频会议的项目,但今天要说的跟视频基本没关系,我们来说一下在一个view中创建一个button,在controller中加载这个view

当button被点击后将时间响应传递给controller,去做其他修改

 

大致就是这个环境下,我们很快想到用代理,当然可以,这里不阐述代理的实现过程我们用block来实现直接上代码

 1 xxxx.h
 2 @interface xxxx : UIView
 3 //这里一定要给block 的copy属性,具体原因请参照我关于block的文章
 4 @property (nonatomic, copy) void (^ButtonBlock)(BTNACTION);
 5 @end
 6 
 7 
 8 xxxx.m
 9 //这里是button点击事件
10 -(void)menuAction:(UIButton *)btn
11 {
12   if(_ButtonBlock)
13 
14   _ButtonBlock( 这里传你要的参数或者你不传参数就什么都不写);
15 
16 }

2,这里要去给controller(连线了)有点跟代理很像

1     xxxx = [[xxxx alloc]initWithFrame:callUseLocalView.frame];
2 
3 //    __weak __typeof(self)weakSelf = self;
4 
5     xxxx.ButtonBlock = ^(BTNACTION action//我这里传的是结构体如果你不需要传参数这里忽略){
6        
7     //这里就是当你执行block,就会调用的 ,如果这里用到self,请注意循环引用问题
8 };

每天记录一点点,让自己过得更充实

顺便吐槽下房租又涨了,搬砖,继续搬砖

posted on 2016-03-28 10:43  一轮圆月  阅读(693)  评论(0编辑  收藏  举报

导航