1、委托者添加代理.
@protocol MyUIViewDelegate <NSObject>
- (void)funcWithIndex:(int)index;
@end
2、委托者申明一个属性:委托者里得有一个属性代表被委托者, 注意这个属性是弱引用.
@interface MyUIView: UIView
@property(nonatomic, weak) id<MyUIViewDelegate> delegate;
3、被委托者声明实现了协议:被委托者需要声明自己实现了委托者的协议.
@interface MyUIViewController : UIViewController <MyUIViewDelegate>
@end
4、将被委托者赋给委托者的代理
MyUIView *view = [[MyUIView alloc]init];
view.delegate = self;
5、被委托者实现代理方法
- (void)funcWithIndex:(int)index{
// 走完第六步后,这里将得到返回的值 即:index=5
}
6、委托者.m文件里,在需要的时候,使用被委托者调用代理方法
if(self.delegate && [self.delegate respondsToSelector:@selector(funcWithIndex:)]){
[self.delegate funcWithIndex:5];
}
网友评论