点击cell中的评论按钮,弹出评论界面

首先在cell.h文件中制定协议,在属性中声明:

#import <UIKit/UIKit.h>
@class AHUTopic;

// 制定协议:
@protocol TermCellDelegate <NSObject>

- (void)choseTerm:(UIButton *)button;

@end

@interface AHUTopicCell : UITableViewCell
//帖子模型数据
@property (nonatomic, strong) AHUTopic *topic;
@property (nonatomic, strong) UITableView *tableView;
@property (assign, nonatomic) id<TermCellDelegate> delegate;//这个是代理属性

@end

在cell.m文件中

@interface AHUTopicCell()

- (IBAction)clickComment:(id)sender;

@end

- (IBAction)clickComment:(id)sender {
     [_delegate choseTerm:sender];//这里是代理调用的方法
}

在topicViewController.m中首先声明代理

@interface AHUTopicViewController () <TermCellDelegate>
@end

重用cell的时候记得设置cell的代理

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    AHUTopicCell *cell = [tableView dequeueReusableCellWithIdentifier:AHUTopicCellId];
    cell.topic = self.topics[indexPath.row];
    cell.delegate = self;
    return cell;
}

编写代理方法

#pragma mark - <TermCellDelegate>代理
//点击评论按钮
- (void)choseTerm:(UIButton *)button
{
    UIView *view1 = [button superview]; //UIView
    UIView *view2 = [[view1 superview] superview]; //AHUTopicCell
    UIView *view3 = [[view2 superview] superview]; //UITableView
    self.tableView = (UITableView *)view3;
    NSIndexPath *indexPath = [self.tableView indexPathForCell:(AHUTopicCell *)view2];
    [self tableView:self.tableView didSelectRowAtIndexPath:indexPath];
}

 

posted @ 2017-03-23 17:24  Keizo  阅读(191)  评论(0编辑  收藏  举报