Saltar al contenido

IOS: una IBAction para varios botones

Solución:

Si está utilizando el generador de interfaces para crear los botones, simplemente apúntelos a la misma IBAction en la clase correspondiente.

A continuación, puede diferenciar entre los botones dentro del método IBAction, ya sea leyendo el texto del botón …

- (IBAction)buttonClicked:(id)sender {
    NSLog(@"Button pressed: %@", [sender currentTitle]);    
}

… o configurando el tag propiedad en Xcode y volver a leerlo a través de [sender tag]. (Si usa este enfoque, comience las etiquetas en 1, ya que 0 es el valor predeterminado y, por lo tanto, de poca utilidad).

-(IBAction)myButtonAction:(id)sender {
    if ([sender tag] == 0) {
        // do something here
    }
    if ([sender tag] == 1) {
        // Do something here
    }    
}

// in Other words

-(IBAction)myButtonAction:(id)sender {
        switch ([sender tag]) {
        case 0:
            // Do something here
            break;
        case 1:
           // Do something here
             break;
       default:
           NSLog(@"Default Message here");
            break;
}

Configure todos los botones para usar esa única acción. Las acciones generalmente tienen un sender parámetro, que puede utilizar para averiguar qué botón está llamando a la acción. Una forma popular de distinguir entre botones es asignar un valor diferente a cada botón. tag propiedad. Por lo tanto, es posible que tenga 40 botones con etiquetas que van de 1 a 40. (0 probablemente no sea una gran opción para una etiqueta, ya que ese es el valor predeterminado, y cualquier botón para el que se olvide de configurar la etiqueta tendrá 0 como valor de etiqueta.)

Esta técnica es más útil cuando todos los botones hacen aproximadamente lo mismo, como los botones de una calculadora o un teclado. Si cada uno de los botones hace algo completamente diferente, entonces terminará con el equivalente a 40 métodos, pero sustituirá su propia declaración de cambio por el sistema de mensajería de Objective-C. En ese caso, a menudo es mejor dedicar el tiempo a crear tantas acciones como necesite y asignarlas de forma adecuada.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *