iOS 代理使用与分析

最近看了篇讲代理的文章,所以想回顾下代理.另外简书上的代理大多排版不优美,我先把我项目中的稍作修改贴上来.后台接口出问题比较闲,抽个时间小小的写一下.希望对新手有帮助.后续有时间会补充些干货.
实现A类向B类传值:
A类: .h

@protocol TopButDelegate <NSObject>//协议

- (void)transButIndex:(NSInteger)index;//协议方法

@end
@interface AddressBarView : UIView
@property (nonatomic, assign) id<TopButDelegate>delegate;//代理属性
- (void)ClickBut:(UIButton *)sender;//此方法执行时判断协议方法的执行情况

.m


//代理方法, 通过BUT 下标 来滑动视图
- (void)ClickBut:(UIButton *)sender{
    if (self.delegate && [self.delegate respondsToSelector:@selector(transButIndex:)]) {
//代理存在且有这个transButIndex:方法
        [self.delegate transButIndex:sender.tag - 1000];
    }
}

B类:.m


@interface B ()<TopButDelegate>
@property (nonatomic, retain) A * bar; //A类
- (void)viewDidLoad {
self.bar = [[AddressBarView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 40)];
    [self.view addSubview: self.bar];
    self.bar.delegate = self;//给A类的代理属性给self(B类),这样B就可以执行协议方法啦
[self.bar ClickBut:but];
}
//执行协议方法
- (void)transButIndex:(NSInteger)index
{
    self.baseCollection.contentOffset = CGPointMake(index * self.baseCollection.frame.size.width, 0); 
}

下边是一篇讲代理比较深入的文章,发现简书上也有,但有抄袭不署名之嫌疑.原文:
http://www.cocoachina.com/ios/20160317/15696.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容