iOS 代理模式
废话不多说,我们看代码,以自定义cell为例子,咱们需要实现其内部一些按钮的方法来吧(于是我找了好久以前的代码,现在我觉得用block还是可以的)
cell.h
#import <UIKit/UIKit.h>
@class SujianTableViewCell;
@protocol SujianTableCellDelegate <NSObject>
-(void)SujianOnClick:(id)sender;
@end
@interface SujianTableViewCell : UITableViewCell
@property (weak, nonatomic) id<SujianTableCellDelegate>delegate;//一般用弱的
@end
cell.m
- (void)SucellOnClick:(id)sender {
UIButton *bt = sender;
[self.delegate SujianOnClick:bt]; //这个是代理里面方法的调用
}
我们在tableview里主界面这样写
@interface MainrootViewController ()<SujianTableCellDelegate> //声明
SujianTableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:cellStr];
if (cell == nil) {
cell = [[SujianTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellStr];
cell.accessoryType = UITableViewCellAccessoryNone;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
cell.delegate = self; //这里是关键
#pragma mark - SujianDelegate //然后就可以用cell的方法了
- (void)SujianOnClick:(id)sender
{
}
本文来自博客园,作者:赫凯,转载请注明原文链接:https://www.cnblogs.com/heKaiii/p/15491333.html

浙公网安备 33010602011771号