是否可以将按钮的目标设置为“自我”以外的其他内容? 如UIView或UIWindow ??
我试过但是我把EXC_BAD_ACCESS作为错误。
答案 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