iOS协议实例

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

1、先声明协议和方法


@protocol JWTableVIewSectionHeaderDelegate 

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

@end

2、设置协议代理


@interface JWSectionHeaderView : UITableViewHeaderFooterView

/** 代理 */

@property (nonatomic, weak) id delegate;

@end

3、视图点击事件


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

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

        [self.delegate didSelectHeaderWithTitle:_title];

    }

}

4、遵循协议


@interface JWTableViewController () 

@end

5、设置代理


#pragma mark 

- (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协议实例)