在我的项目中,我有一个Baseclass:UIViewController。我以编程方式创建了一个UIButton,并在基类中创建了该按钮的目标方法。 我创建了一个继承自基类的视图控制器。问题是按钮反映在屏幕上,但是当我点击它时没有任何反应。请指导我如何为从基类继承的按钮创建一个Action
//method in base class that addss button
-(void)addRHSRoundButton{
UIImage *imgNotSelected = [UIImage imageNamed:@"MENU_NOT_SELECTED.png"];
button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:imgNotSelected forState:UIControlStateNormal];
button.frame = CGRectMake(978, 340, imgNotSelected.size.width/2, imgNotSelected.size.height/2);
[button addTarget:self action:@selector(roundButtonClicked) forControlEvents:UIControlEventTouchUpInside];
button.tag= 101;
[self.view addSubview:button];
}
答案 0 :(得分:0)
您的方法与您使用方法roundButtonClicked
创建目标并不匹配,但您希望运行方法RHSRoundButtonClicked。
如果您将按钮作为参数传递,那就太好了。像这样修改你的方法:
-(void)RHSRoundButtonClicked:(id)sender
{
NSLog(@"btnClicked"); button.hidden = YES;
}
并将创建按钮目标的行更改为:
[button addTarget:self action:@selector(RHSRoundButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
//扩展
如果你想调用超类方法,你可以调用super而不是self:
[button addTarget:super action:@selector(RHSRoundButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
这应该有所帮助。