代理的使用步驟
定義一份代理協議
1. 協議名字的格式一般是:類名 + Delegate
:比如UITableViewDelegate
2. 代理方法細節(jié)
1. 一般都是@optional
2.方法名
一般都以類名
開頭:比如-(void)scrollViewDidScroll:
3. 代理對象一般是控制器
4. 一般都需要將對象作為參數傳遞
3. 必須要遵守NSObject協議
1. 比如@protocol XMGWineCellDelegate <NSObject>
-
聲明一個代理屬性师痕,
弱指針
- 代理的類型格式:id<協議> delegate
@property (nonatomic, weak) id<XMGWineCellDelegate> delegate;
設置代理對象
xxx.delegate = yyy;
代理對象遵守協議欺嗤,實現協議里面相應的方法
-
當控件內部發(fā)生了一些事情,就可以調用代理的代理方法通知代理
- 如果代理方法是@optional瞬欧,那么需要判斷方法是否有實
if ([self.delegate respondsToSelector:@selector(wineCellDidClickPlusButton:)]) { [self.delegate wineCellDidClickPlusButton:self]; }