繁体   English   中英

如何为在基类中实现的按钮调用目标方法

[英]how to call target method for a button implemented in base class

在我的项目中,我有一个Baseclass:UIViewController。我以编程方式创建了一个UIButton,并在基类中创建了该按钮的目标方法。 我创建了一个继承自基类的视图控制器,问题是按钮反映在屏幕上,但是单击时没有任何反应。 请指导如何为从基类继承的按钮创建一个动作

//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];
}

您的方法与使用roundButtonClicked方法创建的目标不匹配,但是您希望运行RHSRoundButtonClicked方法。

如果将button作为参数传递,那就很好了。 像这样修改您的方法:

-(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];

这应该有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM