Tengo dos UIButtons (los creo utilizando IB), que se conectaron al propietario de File con la misma IBAction, ¿cómo puedo definir cuál de ellos se presiona?¿Cómo se puede definir qué botón se presionó si ambos tienen el mismo IBAction?
Respuesta
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.
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.
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.
- (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;
}
- 1. ¿Determinar qué botón se presionó en Tkinter?
- 2. Scala MouseEvent - ¿Cómo saber qué botón se presionó?
- 3. ¿Cómo saber qué botón HTML se presionó en mi servlet?
- 4. ¿Cómo saber qué tecla SHIFT se presionó?
- 5. Averiguar si el usuario presionó el botón Atrás en uinavigationcontroller?
- 6. Mostrar información según el botón que se presionó
- 7. iOS Beginner: ventana UIAlertView con 3 botones> Comprobar qué botón se presionó
- 8. jQuery submit, ¿cómo puedo saber qué botón de enviar se presionó?
- 9. UIViewController para saber si se presionó o apareció?
- 10. ¿Cómo puedo verificar si múltiples variables tienen el mismo valor?
- 11. ¿Verificar si se presionó la tecla Atrás en Android?
- 12. Obtener texto de botón desde IBAction - iPhone
- 13. ¿Por qué diferentes encabezados tienen el mismo nombre?
- 14. ¿Se puede avisar si se activa el mismo hilo varias veces?
- 15. ¿Cómo se puede saber si el iPhone se bloquea?
- 16. ¿Cómo iniciar el hilo si se presiona el botón y detenerlo si se vuelve a presionar?
- 17. En clojure, ¿cómo se puede definir defmacro en términos de sí mismo?
- 18. Vea si dos objetos tienen el mismo tipo
- 19. ¿Se puede definir un operador (***) en F #?
- 20. Reproducir/Pausa con el mismo botón [AVAudioPlayer]
- 21. El botón y el botón de enlace de Bootstrap no tienen el mismo ancho. ¿Como arreglar?
- 22. ¿Qué significa que "Lisp se puede escribir en sí mismo?"
- 23. jQuery click event - ¿Cómo saber si se hizo clic con el mouse o se presionó la tecla Intro?
- 24. ¿Hay alguna forma en History.js de saber cuándo se presionó el botón Atrás?
- 25. ¿Cómo se puede alternar el estado del botón en angular.js?
- 26. ¿Qué sucede si dos objetos diferentes tienen el mismo código hash?
- 27. ver si dos archivos tienen el mismo contenido en Python
- 28. ¿Qué UIView se devuelve al usar -viewWithTag: cuando varias vistas tienen el mismo .tag?
- 29. AdornerDecorator: ¿qué importancia tienen dónde se colocan?
- 30. ¿Cómo probar qué puerto MySQL se está ejecutando y si se puede conectar?
Gracias, Bartosz! –
+1 para obtener buenos ejemplos de comparación de punteros y etiquetas. –