iOS协议实例

案例:给tableView的分组视图的点击事件做协议代理

1、先声明协议和方法


@protocol JWTableVIewSectionHeaderDelegate <NSObject>

- (void)didSelectHeaderWithTitle:(NSString *)title;

@end

2、设置协议代理


@interface JWSectionHeaderView : UITableViewHeaderFooterView

/** 代理 */

@property (nonatomic, weak) id<JWTableVIewSectionHeaderDelegate> delegate;

@end

3、视图点击事件


- (void)didSelect:(UIControl *)sender {

    if (self.delegate && [self.delegate respondsToSelector:@selector(didSelectHeaderWithTitle:)]) {

        [self.delegate didSelectHeaderWithTitle:_title];

    }

}

4、遵循协议


@interface JWTableViewController () <JWTableVIewSectionHeaderDelegate>

@end

5、设置代理


#pragma mark <UITableViewDelegate>

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

    JWSectionHeaderView *header = [tableView dequeueReusableHeaderFooterViewWithIdentifier:@"header"];

    if (!header) {

        header = [[JWSectionHeaderView alloc] initWithReuseIdentifier:@"header"];

        header.delegate = self; // 设置代理

    }

    return header;

}

6、实现协议方法


- (void)didSelectHeaderWithTitle:(NSString *)title {



}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 12,961评论 3 38
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,377评论 30 472
  • 现在我的心里有一团火,但又不知道怎么做! 要完成我的论文,看完七篇论文综述并做好笔记,有不会的问题向老师请教,切忌...
    渔溪是谁阅读 2,844评论 0 2
  • UITableView就像Android中的ListView。 iOS程序结构,也是典型的MVC模式: UITab...
    ilaoke阅读 6,497评论 0 3
  • 本人上个月购买了一个高层,98平,目前正在装修中,第一次装修,有很多不懂的地方,在过程中得到了了解,想写出来与大家...
    ice白先森阅读 3,226评论 3 6