0

我有这个按钮代码,它在两个按钮中相似(部分代码)

btn.frame=CGRectMake(600,400,30,30);]
btn.addTarget:self actionL@selector(authButtonAction)forControlEvents:UIControlEventTouchUpInside]

并在函数中(虚拟代码)

-(void)authButtonAction {
    if btn1 was clicked btn1.caption=y else btn1.caption=2
}

我的按钮有效并且我的函数被调用,但我试图做的是以某种方式找出单击了哪个按钮...将其传递给authButtonAction. 因为这将使我免于编写 X 数量的函数,并且我可以在一个函数中使用 if 语句。

4

4 回答 4

2

为您的按钮设置标签..

#define TAG_BUTTON_ONE 1
#define TAG_BUTTON_TWO 2

oneButton       =  [[UIButton alloc] ......];
oneButton.tag   =  TAG_BUTTON_ONE;
[oneButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
-----
-----

twoButton       = [[UIButton alloc] ....];
twoButton.tag   = TAG_BUTTON_TWO;
[twoButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
---
--

在按钮处理程序中,检查发件人的标签

-(void) buttonClicked:(UIButton*)sender{
   if(sender.tag == TAG_BUTTON_ONE){
      //handle button one click
   }else if(sender.tag == TAG_BUTTON_TWO){
      //handle button 2 click
   }   
}
于 2012-12-20T06:07:20.777 回答
0

您可以为按钮提供标签,然后可以在操作方法中检查 tappedButton 的标签。

-(IBAction)ButtonPressed:(id)sender
{
UIButton *pressedButton = (UIButton *)sender;
int buttonTag = pressedButton.tag;
if (buttonTag==1)
{
NSLog(@"Button 1 Pressed");
}
else
{
NSLog (@"Button 2 Pressed");
}
}
于 2012-12-20T06:05:51.683 回答
0

为您的按钮设置btn.Tag一个 id,然后使用它来确定按下了哪个按钮。

于 2012-12-20T06:02:44.017 回答
0

您的按钮方法名称的末尾应该有一个冒号。该按钮将自己作为发送者参数传递。您可以查询它以找出单击了哪个按钮(基于其标题或标签)。

于 2012-12-20T06:02:53.773 回答