点击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]; }