美文网首页
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