-1

我正在尝试创建我的第一个代表,这就是我想要做的

在名为 PAStepper.hi 的课堂上做了这个

@class PAStepper;
@protocol StepperDelegate <NSObject>

@required
-(void)didIncrement;
-(void)didDecrement;


@end

@interface PAStepper : UIControl
{
    __weak id <StepperDelegate> stepperDelegate;
}
@property (nonatomic, weak) id <StepperDelegate> stepperDelegate;
@end

并在 .m 文件中合成了当然的属性

然后在 PAStepper.m 中放入以下方法

[self.stepperDelegate didDecrement];

在控制器中,我想接受委托,我这样做了

。H

@interface OCSideCartViewController : UIViewController<StepperDelegate>

.m

- (void)viewDidLoad
{
    [super viewDidLoad];

    PAStepper *stepper = [[PAStepper alloc]init];
    stepper.stepperDelegate = self;
}



-(void)didIncrement{
    NSLog(@"inc");
}
-(void)didDecrement{
    NSLog(@"dec");

}

知道这个类是 viewController 包含一个表,每个单元格都有 PAStepper .. 我只希望每当我按下按钮时委托调用 didIncrement 和 didDecrement

4

3 回答 3

1

When you call this method

[self.stepperDelegate didDecrement];

NSLog you stepperDelegate and ensure it is not null. Can you confirm the method which calls your delegate is being called?

于 2013-08-14T13:34:10.793 回答
0

你可以在你的 Pastapper.h 文件中调用它

if ([stepperDelegate respondsToSelector:@selector(didIncrement)])
{
    [stepperDelegate performSelector:@selector(didIncrement)];
}
于 2013-08-14T13:36:09.317 回答
0

我无法下载该项目,所以我猜..

界面生成器中的步进器吗?如果是,您不必分配它。

  1. 在 OCsideCartViewController 中建立 Stepper 的 Outlet Connection。
  2. 在 OCsideCartViewController 中发布:

- (void)viewWillAppear:(BOOL)animated{     
     self.stepper.stepperDelegate = self;
     [super viewWillAppear:animated];
}

如果 Stepper 不是 Outlet,则必须在设置边界后将其添加到 ViewControllers 视图中。

于 2013-08-14T17:42:47.973 回答