什么是delegate
delegate就是委托模式,将一件属于委托者做的事情,交给另外一个被委托者来处理。一个标准的委托由以下部分组成:
协议的声明:用协议(Protocol)来申明哪些方法被委托出去。
//代理的创建
@protocol EventViewDelegate<NSObject>
@optional
//代理方法
- (void)sendValue:(NSString *)value;
@end
委托者申明一个属性:委托者里有一个属性代表被委托者,使用weak来修饰
//声明协议变量
@property(nonatomic, weak)id<EventViewDelegate> delegate;
被委托者声明实现协议:被委托者需要声明自己实现了协议
//实现协议方法
- (void)sendValue:(NSString *)value{
NSLog(@"eventView:%@",value);
}
delegate的用途
- 传递事件
传递事件就是希望A发生了什么事情,希望B知道并在自己的类里面做出某些反应。 - 确定事件可执行
当A需要执行某个事件时,A不确定是否可执行,希望B回应下。 - 传递值
当A跳到B再返回时,将B的值回传给A。