我有一个名为AdminOrderViewController
的tableview,它有一个名为StepperProgressCell
的自定义单元格。
此customcell有一个名为AYStepperView
的自定义UIView。这个UIView中有一个按钮,我在它上面实现了一个委托,只要它被点击,我希望在clicked
上调用这个委托AdminOrderViewController
方法。
但是,我不知道如何添加cell.delegate ??
AdminOrderViewController.m
@interface AdminOrderViewController : UIViewController <AYStepperViewDelegate>
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"StepperProgressCell";
StepperProgressTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (!cell) {
cell = [[StepperProgressTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
//cell.stepperView.delegate= ???
return cell;
}
- (void)clicked
{
// is not getting called?
}
StepperProgressTableViewCell.m
@interface StepperProgressTableViewCell ()
@property (nonatomic) AYStepperView *stepperView;
@property (nonatomic) NSUInteger currentIndex;
@property (nonatomic) NSUInteger currentStep;
@property (nonatomic) UIView *containerView;
@end
@implementation StepperProgressTableViewCell
@synthesize stepperView;
- (void)awakeFromNib {
[super awakeFromNib];
[self setUpViews];
}
- (void)setUpViews {
self.stepperView = [[AYStepperView alloc]initWithFrame:CGRectMake(0, 0 , [[UIScreen mainScreen] bounds].size.width, kFormStepperViewHeight) titles:@[@"Processing",@"Ready",@"Delivered", nil)]];
[self addSubview:self.stepperView];
}
AYStepperView.m
@protocol AYStepperViewDelegate <NSObject>
@required
- (void)clicked;
@end
- (void)buttonPressed:(UIButton *)sender {
[stepperDelegate clicked];
}
更新:
答案 0 :(得分:2)
隐藏StepperProgressTableViewCell.m
@interface StepperProgressTableViewCell ()
//@property (nonatomic) AYStepperView *stepperView;
@property (nonatomic) NSUInteger currentIndex;
@property (nonatomic) NSUInteger currentStep;
@property (nonatomic) UIView *containerView;
@end
在StepperProgressTableViewCell.h
中移动以下属性并检查
@property (nonatomic) AYStepperView *stepperView
然后将您的委托设置为stepperView;
cell.stepperView.delegate = self
答案 1 :(得分:2)
您需要在您的cell.h中声明您的stteperView属性,您的属性在.m中声明并且是私有的,您需要在.h中声明
@interface StepperProgressTableViewCell : UITableViewCell
@property (nonatomic) AYStepperView *stepperView;
@end
之后,你可以在你的cellForRow
中cell.stepperView.delegate= self
希望这有帮助