我正在尝试创建我的第一个代表,这是我正在尝试做的事情
在名为PAStepper.h的课上我做了这个
@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
答案 0 :(得分:1)
当你调用这个方法时
[self.stepperDelegate didDecrement];
NSLog你stepperDelegate并确保它不为null。你能否确认调用你的委托的方法?
答案 1 :(得分:0)
你可以在你的pastapper.h文件中调用它
if ([stepperDelegate respondsToSelector:@selector(didIncrement)])
{
[stepperDelegate performSelector:@selector(didIncrement)];
}
答案 2 :(得分:0)
我无法下载项目,所以我猜...
Interface Builder中的步进器是什么? 如果是,您不必分配它。
- (void)viewWillAppear:(BOOL)animated{
self.stepper.stepperDelegate = self;
[super viewWillAppear:animated];
}
如果Stepper不是Outlet,则必须在设置边界后将其添加到ViewControllers视图中。