Obj-C:委托模式,将自己设置为委托

时间:2013-07-07 03:45:46

标签: ios uitableview delegates

我有一个自定义的TableView Cell,我在tableView中使用 - 我已经决定我需要将它的一些方法委托给tableViewController。

//Custom tableview cell
typedef enum {
    kButtonSelected,
    kButtonNormal
} ButtonState;

// Classes using this custom cell must implement these methods
@protocol CustomTableViewCellDelegate <NSObject>
@required
- (void) storeButtonState:(ButtonState)state forButton:(UIButton *)sender;
- (void) restoreButtonState:(UIButton *)tagLectureButton;

@end

@interface CustomTableViewCell : UITableViewCell

// Delegate
@property (assign) id <CustomTableViewCellDelegate> delegate;

@property (weak, nonatomic) IBOutlet UILabel *mainLabel;
@property (weak, nonatomic) IBOutlet UILabel *numberLabel;
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *spinner;
@property (weak, nonatomic) IBOutlet UIButton *tagLectureButton;

然后我将TableView设置为其委托并实现方法。到目前为止一切顺利

@interface LecturesSubTVC : LecturesTVC <CustomTableViewCellDelegate>

但我没有设置(self.CustomTableViewCell.delegate = self;)

的实例变量

所有单元格都在以下方法中分配:

CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

如何将单元格设置为委托,以便调用委托方法?

2 个答案:

答案 0 :(得分:2)

你似乎已经掌握了一切。在

中出列一个单元格后
CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

只需使用cell.delegate = self;

设置其委托

答案 1 :(得分:1)

CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.delegate = self;