2012-03-10 6 views
0

У меня есть кнопка. После того, как пользователь отправит форму, изображение кнопки должно измениться на DONE.PNG, иначе оно останется SUBMIT.PNG.Как определить, какая кнопка была нажата.

Мне нужно знать следующее:

1.) Как мы можем написать метод, чтобы узнать, какую кнопку щелкнул пользователь. (Если он нажал на кнопку, когда она имеет DONE.PNG или SUBMIT.PNG изображение на нем)

мой щелчок кнопки событие -(void)buttonClicked : (id)sender {}

ответ

0

Как вы с помощью одной кнопки и изменить только его образ, то есть два простых способа, которые вы можете следовать:

  1. Проверьте имя изображения кнопки, если ее DONE.PNG затем делать то, требуется и изменить изображение иначе наоборот.

  2. Имейте переменную, либо вы можете взять целое число (это поможет вам, если у вас есть еще больше изменений изображения на той же кнопке), чтобы отслеживать состояние/изображение кнопки.

Например, мы будем 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 переменная.

1

Обычно вы должны установить тег UIButton.

-Интерфейс или раскадровка вы делаете это под информацией об элементе UIButton.

-Программно вы делаете это так: myButton.tag = 23;

Тогда в buttonClicked вы это делаете:

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 
} 

Надеется, что вы получите это работает :)

+0

Есть ли другой способ, которым я мог бы это сделать без использования тегов – shajem

0

Вы можете добавить тег к кнопке, т.е. NSInteger buttonTag = [отправителе тега] и затем условные чтобы проверить значения тегов, чтобы определить, какая кнопка была нажата.

+0

Есть ли другой способ, которым я мог бы это сделать без использования тегов – shajem

Смежные вопросы