按钮的目标总是“自我”?我可以成为另一个吗?

时间:2011-06-28 07:07:40

标签: iphone objective-c ios cocoa-touch

是否可以将按钮的目标设置为“自我”以外的其他内容? 如UIView或UIWindow ??

我试过但是我把EXC_BAD_ACCESS作为错误。

2 个答案:

答案 0 :(得分:2)

您可以将目标设置为任何instance/object。实例/对象应响应您设置的选择器。否则你将获得SIGABRT异常。

我们主要将目标设置为自定义视图控制器,因为我们对某些事件执行了一些操作。如果我们在当前视图控制器中定义了动作,我们将Self设置为目标。您可以将其设置为其他视图控制器,如下所示,

AViewController *a = [[AViewController alloc] init];
[yourButton addTarget:a action:@selector(onButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

单击yourButton时,将触发视图控制器实例onButtonPressed:的操作a注意:AViewController应该实现方法onButtonPressed: 。如果没有,您将收到SIGABRT。

答案 1 :(得分:0)

我有同样的错误, 它通过将[AViewController类]更改为目标来解决。

[yourButton addTarget:[AViewController class] action:@selector(onButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

我的类也被声明为+符号,因为它是一个可在所有应用中使用的库。

@interface SocialClass : NSObject

+ (void) gotoYoutube;
+ (void) gotoFacebook;
+ (void) gotoTwiter;

@end