teclado recuperar pantalla notificaciones como cerrar centro cambiar bloqueada aplicaciones iphone ios ipad uialertview

pantalla - recuperar notificaciones iphone



Botón de detección presionado cuando hay múltiples vistas de alerta (5)

En su opinión, agregue una propiedad para cada vista de alerta.

UIAlertView *myAlertType1; UIAlertView *myAlertType2; @property (nonatomic, retain) UIAlertView *myAlertType1; @property (nonatomic, retain) UIAlertView *myAlertType2;

Crea tu alerta usando estas propiedades

self.myAlertType1 = [[[UIAlertView alloc] initWithTitle: ... etc] autorelease]; [self.myAlertType1 show];

Luego en tu método de delegado:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (alertView == myAlertType1) { // check the button types and add behaviour for this type of alert } else if (alertView == myAlertType2 { // check the button types and add behaviour for the second type of alert } }

Editar: Aunque lo anterior funciona, la sugerencia de iApple de usar la etiqueta parece más clara / más simple.

Tengo varias vistas de alerta en una vista, y uso este código para detectar qué botón se presionó:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { NSString *title = [alertView buttonTitleAtIndex:buttonIndex]; if ([title isEqualToString:@"OK"]) { //for one alert view [passCode becomeFirstResponder]; } else if ([title isEqualToString:@" OK "]) { //for another alert view, had to change "OK" to " OK " [passCodeConfirm becomeFirstResponder]; } }

Ahora que hay múltiples vistas de alerta en una vista que hacen cosas diferentes, tengo que engañar al usuario para que piense que "OK" y "OK" son lo mismo. Funciona y se ve bien, pero se siente un poco desordenado. Sin duda, hay otra forma de hacerlo, como hacer que esto sea específico para una vista de alerta y luego hacerlo específico para otro. ¿Sabes cómo haría esto? ¡Gracias!


No usaría los títulos para distinguir entre los botones. Te encontrarás con problemas cuando tu aplicación esté localizada o decidas cambiar los títulos de los botones, pero olvídate de actualizarlos en todas partes. Use los índices de botón en su lugar o si solo tiene un botón además de un botón de cancelación, use la propiedad UIAlertView de UIAlertView .

Para distinguir entre múltiples vistas de alerta, puede usar su propiedad de tag .


Sería más técnico y mejor que establecer una etiqueta única para UIAlertView por separado e identificarlo y acceder en su método de delegado.

Por ejemplo,

UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Message" message:@"Are You Sure you want to Update?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok",nil]; [alert setTag:1]; [alert show]; [alert release]; - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if(alertView.tag == 1) { // set your logic } }


Use la propiedad de etiqueta para identificar de forma única cada una de las vistas de alerta u crear.

Me gusta esto

myAlertView.tag = 1

A continuación, en el método de delegado clickedButtonAtIndex compruebe en qué botón de la vista de alerta se hizo clic utilizando esta propiedad de etiqueta,

if(alertView.tag==1)


//in your .h file UIAlertView* alert1; UIAlertView* alert2; //in your .m file // when you are showing your alerts, use [alert1 show]; //or [alert2 show]; //and just check your alertview in the below method - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if(alertView == alert1) { //check its buttons } else //check other alert''s btns }