2011-04-04 24 views

Respuesta

26

Su acción puede llevarse a cabo de esta manera:

- (IBAction) buttonTapped: (id) sender 
// you can also replace id with UIButton* 

A continuación, dentro de este método se puede comprobar por -isEqual: Método

- (IBAction) buttonTapped: (id) sender 
{ 
    if ([sender isEqual:referenceToOneOfYourButtons]) { 
    // do something 
    } 
    else if ([sender isEqual:referenceToTheOtherButton]) { 
    ... 
    } 
} 

Alternativamente puede configurar valores diferentes para etiquetar la propiedad de los botones y luego:

- (IBAction) buttonTapped: (UIButton*) sender 
{ 
    const int firstButtonTag = 101; 
    const int otherButtonTag = 102; 

    if (sender.tag == firstButtonTag) { 
    ... 
    } 
    else if (sender.tag == otherButtonTag) { 
    ... 
    } 
} 

Es necesario configurar esta etiqueta ya sea en su .xib oi n código.

+0

Gracias, Bartosz! –

+1

+1 para obtener buenos ejemplos de comparación de punteros y etiquetas. –

0

Declare su acción como

- (IBAction)someAction:(id)sender; 

Cuando un control envía el mensaje algunaAccion, enviará sí a lo largo como el parámetro remitente.

p. Ej.

- (IBAction)someAction:(id)sender { 
    NSLog(@"sender: %@", sender); 
} 

Ahora sabe qué control envió el mensaje.

6

Algo en esta línea ... suponiendo que button1 y button2 están en su archivo de encabezado.

- (IBAction)buttonPressed:(UIButton *)button { 
     if (button == button1) { 
     } else if (button == button2) { 
     } 
} 

O configure la etiqueta en Interface Builder y verifique la etiqueta.

- (IBAction)buttonPressed:(UIButton *)button { 
      if (button.tag == 1) { 
      } else if (button.tag == 2) { 
      } 
    } 

Las etiquetas NO están basadas en cero. Usa 1 o más.

0

- (IBAction) myButtonAction: (id) {emisor

if ([sender tag] == 0) { 
     // do something here 
    } 
    if ([sender tag] == 1) { 
     // Do some think here 
    } 

} 

// En otras palabras

- (IBAction) myButtonAction: (id) {emisor

 NSLog(@"Button Tag is : %i",[sender tag]); 

    switch ([sender tag]) { 
    case 0: 
     // Do some think here 
     break; 
    case 1: 
     // Do some think here 
     break; 
    default: 
     NSLog(@"Default Message here"); 
     break; 

}

Cuestiones relacionadas