美文网首页
iOS协议实例

iOS协议实例

作者: 黄善军Jackie | 来源:发表于2017-11-22 23:59 被阅读5次

    案例:给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协议实例

          本文链接:https://www.haomeiwen.com/subject/esjavxtx.html