我有这个按钮代码,它在两个按钮(代码的一部分)中类似
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语句。
答案 0 :(得分: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
}
}
答案 1 :(得分:0)
将btn.Tag
设置为按钮的ID,然后使用它来确定按下了哪个按钮。
答案 2 :(得分:0)
您的按钮方法的名称末尾应该有一个冒号。该按钮将自己作为sender参数传递。您可以查询该按钮以找出单击的按钮(基于其标题或标记)。
答案 3 :(得分: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");
}
}