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 };
每天记录一点点,让自己过得更充实
顺便吐槽下房租又涨了,搬砖,继续搬砖
失败才是你成功的关键