美文网首页
IOS代理的封装

IOS代理的封装

作者: 尕qin | 来源:发表于2016-10-30 16:08 被阅读0次

为什么要封装代理

在IOS的cell中往往有许多控件,但是需要的功能是点击按钮改变页面的某些东西,比如页面跳转,cell是基础View的视图,只有Controller(控制器)才能调用的方法,如果想让cell中的某个空间能实现这个功能,那么,我们需要封装一个带代理,让他实现这个功能。

如何封装这样的代理呢?

首先我们在view(cell也是view的一种)中的.h文件写,
例如

//OViewDelegate,这个命名有一定的规范,OView这个是你的文件名,Delegate是代理的意思,虽然你不这样命名也不会错,但是这是规范。
@protocol OViewDelegate <NSObject>

@optional
-(void)btnClick;

@end

在.m文件中实现它

//这是你点击的控件的事件,里面实现一下刚才的代理
-(void)btnAction{
    //判断能否执行,不判断,会崩溃。
    if ([self.delegate respondsToSelector:@selector(btnClick)]) {
         [self.delegate btnClick];
    }
}

然后再Controller(控制器)导入头文件引入代理

#import "OView.h"
@interface ViewController ()<OViewDelegate>

调用代理

-(void)btnClick{
    [self presentViewController:[[UIViewController alloc] init] animated:YES completion:nil];
}

相关文章

网友评论

      本文标题:IOS代理的封装

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