如何识别单击了哪个按钮

时间:2012-03-10 18:50:32

标签: iphone objective-c

我有一个按钮,一旦用户提交表单,按钮图像就会更改为DONE.PNG,否则它将保持为SUBMIT.PNG

我需要知道以下内容;

1。)我们如何编写方法,以了解用户点击的按钮。 (如果他在按钮上显示DONE.PNGSUBMIT.PNG图片时点击该按钮

我的按钮点击事件为-(void)buttonClicked : (id)sender {}

3 个答案:

答案 0 :(得分:1)

通常你会设置UIButton的标签。

- 在有关UIButton元素的信息下进行的接口或故事板。

- 以编程方式执行此操作:myButton.tag = 23;

然后在按钮点击中执行此操作:

UIButton* senderButton = (UIButton*) sender;
if(senderButton.tag==23) {
   // It's the button as submit
   // Set button image
   senderButton.tag = 5;
}
if(senderButton.tag==5) {
   // Button is done
}

希望你得到它的工作:)

答案 1 :(得分:0)

您可以向按钮添加标签,即NSInteger buttonTag = [sender tag],然后使用条件语句检查标签值以确定单击了哪个按钮。

答案 2 :(得分:0)

当您使用单个按钮并仅更改其图像时,您可以使用以下两种简单方法:

  1. 检查按钮图像的名称,如果其DONE.PNG然后执行所需操作,则更改图像,反之亦然。

  2. 有一个变量,您可以采用整数(如果您在同一个按钮上有更多的图像更改,它会对您有所帮助)来跟踪按钮状态/图像。

  3. 例如,我们将typedef buttonState并针对合适的案例进行检查。

    .h档案

    //在接口声明之前..

    typedef enum
    {
       ButtonStateDone = 1,
       ButtonStateSubmit,
      //any other state that it may have.
    } ButtonState 
    
    接口声明中的

    // ..

    ButtonState buttonState; //我们将用它来跟踪按钮状态。

    .m档案

    在初始视图中显示时,最初设置buttonState。假设按钮显示DONE.PNG 所以buttonState = ButtonStateDone;

    现在,在按钮操作中,您将更改此

    if(buttonState == ButtonStateDone)
    {
     //do something and change button state.
    }
    if(buttonState == ButtonStateSubmit)
    {
     //do something and change button state.
    }
    

    在这里,我使用了typedef,如果您需要为按钮设置超过2个状态,则此功能很有用,您只需使用BOOL变量即可。