点击了哪个按钮... iPhone和Obj-C问题

时间:2009-07-09 13:17:19

标签: objective-c iphone function uibutton

我刚刚开始使用iPhone和Obj-C一个月新手了。

我有两个按钮,它们都调用相同的功能如下

[play addTarget:self action:@selector(showQstn:) forControlEvents:UIControlEventTouchUpInside];

在函数showQstn中,我想知道点击了什么按钮。任何的想法? 也欢迎替代的想法。

TIA

2 个答案:

答案 0 :(得分:3)

假设showQstn:被声明为

-(void) showQstn:(id)sender;

参数sender是事件的触发对象。

编辑:您还可以使用tag property区分按钮。每个视图都有一个唯一的tag标识符(可以通过编程方式或通过Interface Builder进行设置)。

编辑: UIButton没有title属性,因此您收到错误。它有一个titleForState:。因此,您应该将代码更改为以下内容:

NSString *title = [sender titleForState:UIControlStateNormal];
if ([title isEqualToString:@"PLAY!"]) {
  name.text = title;
}

答案 1 :(得分:0)

您可以将单击的按钮作为IBAction方法showQstn:的参数。您可以考虑在按钮上设置标签,然后使用[sender tag]来识别触发IBAction方法的标签。