UIButton addTarget:从另一个类调用方法

时间:2012-11-25 12:11:28

标签: objective-c class methods uibutton

代码下面的想法是在两个类之间进行交互。按下按钮时,我想在另一个类中打印一个语句。 当我按下按钮时,我无法打印“测试”。

Buttonclass.m:

 HjulGenkendelse *hjulRecognizer = [[HjulGenkendelse alloc] init];
    [knap addTarget:hjulRecognizer action:@selector(hjul:) forControlEvents:UIControlEventTouchUpInside];

HjulGenkendelse.h

 @interface HjulGenkendelse : UIGestureRecognizer
 - (void)hjul:(UIButton *) sender;

HjulGenkendelse.m

- (void)hjul:(UIButton *) sender
{
  NSLog(@"Test!");
}

有人对我的问题有任何解决方案吗?

感谢提前:)

1 个答案:

答案 0 :(得分:3)

问题很可能就在这里:

HjulGenkendelse *hjulRecognizer;
[knap addTarget:hjulRecognizer action:@selector(hjul:) forControlEvents:UIControlEventTouchUpInside];

在第一行中,您声明了一个对象。但你实际上并没有创建对象。因此,如果您使用ARC,则可以将其初始化为nil。然后,您将nil添加为操作的目标。因为它没有目标,所以不会发送操作。 (这不是严格意义上的,但您应该查找Nil目标操作和响应者链以了解原因)。

修复是简单地将对象实例化为操作的目标。将第一行更改为

HjulGenkendelse *hjulRecognizer = [[HjulGenkendelse alloc] init];

如果init不适合HjulGenkendelse类,请使用适当的初始化器。