2010-12-03 4 views
11

Tengo el controlador que implementa UIAlertViewDelegate. En la implementación tengo:UIAlertViewDelegate y más ventanas de alerta

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 

método. Cuando creo UIAlertView pongo 'delegate' en 'self' y funciona bien. Pero el problema es que ahora tengo una vista de alerta más y quiero comportamientos diferentes para cada uno de ellos. Entonces, ¿cómo verificar qué alerta enviar mensaje?

Respuesta

12

UIAlertView es un subsclass UIView y por lo tanto tiene la propiedad de etiqueta se puede utilizar para diferenciar entre ellos:

UIAlertView *alert1 = ... //Create alert 
alert1.tag = kActionTag1; 
//show alert 

... 

UIAlertView *alert2 = ... //Create alert 
alert2.tag = kActionTag2; 
//show alert 

Y luego en el método delegado:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    if (alertView.tag == kActionTag1){ 
      // Perform 1st action 
    } 
    if (alertView.tag == kActionTag1){ 
      // Perform 2nd action 
    } 
} 
+0

Gracias, eso ayuda mucho :) – 1110

0

El puntero a cada vista de alerta específica se envía en el parámetro alertView del método de delegado. Simplemente necesita seguir los punteros (por ejemplo, a través de variables de instancia) para saber cuál es cuál y actuar en consecuencia.

0

UIAlertView gas de una propiedad de etiqueta. Configúralo cuando lo crees y puedes buscar la etiqueta en el delegado.

Cuestiones relacionadas