对delegate的使用

其实delegate还是非常厉害的。假如我想创建很多个方法,给全部。m文件使用,总不能在每个。m文件后面加上这一堆代码把。因此为了实现这个功能,我们把这些方法设置在一个delegate那里,然后通过delegate调用他就行了。

看到一个解释的很好的例子。

 我上班的工作主要内容包括 (1)写代码(2)写文档(3)测试程序(4)接电话(5)会见客户

(1)(2)我自己全权负责,但是后面(3)(4)(5)我不想或者不方便自己做,所以我想找个助手(delegate)帮我做这些事,于是我定了一个招聘要求(Protocol),里写明我的助手需要会做(3)(4)(5)这三件事。很快,我招到一个助手。

        即:我.delegate = 助手;

于是以后每当我遇到需要测试程序或者接电话的活,我就把他转交给助手(delegate)去处理,助手处理完后如果有处理结果(返回值)助手会告诉我,也许我会拿来用。如果不需要或者没有结果,我就接着做下面的事。


这个就是delegate和protocol的意思。

现在我要写一个delegete,我们叫他为pickerview的协议

1.在。h文件里面

@protocol jingweiDelegate   //请秘书delegete 执行好protocol规则

@interface ....

@property(nonatomic,assign)id<jingweiDelegate>  delegate;

@end 


@protocol jingweiDelegate <NSObject>

-(void)dudaoDatePicker:(DudaoDatePicker*)datePicker    doneButtonDidPushWithDate(NSDate*)date;

-(void)cancelButtonDidPush;

2.在。m

对方法进行描述

假如要传参数例子如下:

if(_delegate)

[_delegate dudaoDatePicker:self  doneButtonDidPushWithDate:date];



3.在调用他的时候的首先要包他的delegate

然后在调用语句如下:


首先创建pickerView,设置delegete为self

此时他会调用delegate的方法

-(void)dudaoDatePicker:(DudaoDatePicker*)datePicker    doneButtonDidPushWithDate(NSDate*)date

{

 随便写方法。。。

textfield = 与date有关的东西(而date是从那个文件里面拿到的)

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值