代理 传值 代理设计模式六大步骤

B:我爱你
A:我知道,可是我只爱他
B:那我会一直等你

B不知道要做备胎到什么时候
A也不知道什么时候被高富帅甩掉
当A被甩了之后就会调用delegate找回备胎B

恩,就酱。

A想监听B一些事情 A就是代理
A想告诉B一些事情 B就是代理

设计代理模式的六大步骤

1.定义代理协议, 协议名称格式:控制器 +Delegate ,在协议里声明代理方法, 一般代理方法是@optional
2.声明 代理属性 @property (nonatomic , weak)id <协议名称> delegate;
3.在内部发生某些行为时 ,调用代理对应的代理方法,通知代理内部发生什么事情

if ([self.delegate respondsToSelector:@selector(getCityId:)]) {
    [self.delegate getCityId:[self.cityIdArr objectAtIndex:indexPath.row]];
    [self.navigationController popViewControllerAnimated:YES];
}

4.设置代理 XXX.delegate = self
5.xxx实现代理方法 getCityId:(NSString *)str
6.xxx 遵守协议 在.h中加 <协议名称>

你可能感兴趣的:(代理 传值 代理设计模式六大步骤)