设置UIButton的目标
问题描述:
我想,当以这种方式被压buttonCancel调用一个方法:设置UIButton的目标
+ (DejalActivityView *)activityViewForView:(UIView *)addToView withLabel:(NSString *)labelText width:(NSUInteger)aLabelWidth;
{
// Immediately remove any existing activity view:
if (dejalActivityView)
[self removeView];
// Remember the new view (so this is a singleton):
dejalActivityView = [[self alloc] initForView:addToView withLabel:labelText width:aLabelWidth];
buttonCancel = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[buttonCancel addTarget:self
action:@selector(callCancelAlert:)
forControlEvents:UIControlEventTouchDown];
[buttonCancel setTitle:@"Cancel upload" forState:UIControlStateNormal];
buttonCancel.frame = CGRectMake(250, 560, 300, 40);
[addToView addSubview:buttonCancel];
[buttonCancel setImage:[UIImage imageNamed:@"socialize-navbar-bg.png"] forState:UIControlStateNormal];
return dejalActivityView;
}
和
-(IBAction)callCancelAlert:(id)sender{
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"Announcement"
message: @"It turns out that you are playing Addicus!"
delegate: nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
//[alert release];
}
我收到此错误的方法:
“NSInvalidArgumentException ',原因:'+ [DejalBezelActivityView callCancelAlert:]:无法识别的选择器发送到类0x3184e4' * F IRST扔调用堆栈: (0x327862a3 0x3a61f97f 0x32789ca3 0x32788531 0x326dff68 0x346790c5 0x34679077 0x34679055 0x3467890b 0x3467859b 0x345a1523 0x3458e801 0x3458e11b 0x362805a3 0x362801d3 0x3275b173 0x3275b117 0x32759f99 0x326ccebd 0x326ccd49 0x3627f2eb 0x345e2301 0x39445 0x3aa56b20) 的libC++ abi.dylib:终止叫做抛出异常
而且该应用程序崩溃。
答
您的第一个方法是类方法(+)而不是实例方法( - ),因此您处于Class上下文中。
当你写
[buttonCancel addTarget:self
action:@selector(callCancelAlert:)
forControlEvents:UIControlEventTouchDown];
自点而不是一个类的实例(例如通过创建或Alloc &初始化消息),但类本身。
由于在相同的方法,你的Alloc的DejalActivityView
一个实例,你应该这样做:
[buttonCancel addTarget:dejalActivityView
action:@selector(callCancelAlert:)
forControlEvents:UIControlEventTouchDown];
是'buttonCancel'a伊娃? – limon 2013-03-11 18:48:59
没有它的UIButton * buttonCancel;并在第一个报告的方法之前创建 – Alessandro 2013-03-11 18:50:11