ClickedButtonAtIndex: no funciona

Hola chicos, tengo esta i IBAction vinculada a un botón:

- (IBAction)showCurl:(id)sender {
        alert1 = [[UIAlertView alloc]initWithTitle:@"Loading" message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:nil];
        [alert1 show]; 

}

y un ClickedButtonIndex para ejecutarse automáticamente, pero de alguna manera no carga SecondViewController:

#pragma mark UIAlertView
- (void)alertView:(UIAlertView *)alert1 clickedButtonAtIndex:(NSInteger)buttonIndex {
    if(buttonIndex == 0){
        SecondViewController *sampleView = [[SecondController alloc] init];
        [sampleView setModalTransitionStyle:UIModalTransitionStylePartialCurl];
        [self presentModalViewController:sampleView animated:YES];
        }
    else{
            // Cancel prompt
        }
}

¿Me estoy perdiendo de algo?

preguntado el 03 de mayo de 12 a las 17:05

¿Cuál es el problema? ¿Se ha mostrado la alerta? si es así, ¿se ha llamado al método de delegado? -

La alerta se muestra pero no cambia a SecondViewController como se refleja en - (void)alertView:(UIAlertView *)alert1 clickedButtonAtIndex:(NSInteger)buttonIndex { -

2 Respuestas

Si no le da a la vista de alerta algunos títulos de botón, no habrá ningún botón para tocar y no se llamará a ese método de delegado.

- (IBAction)showCurl:(id)sender {
        alert1 = [[UIAlertView alloc] initWithTitle:@"Loading" message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert1 show]; 
}

contestado el 03 de mayo de 12 a las 17:05

Entonces, ¿cómo hago cuando el usuario hace clic en el botón, aparece una alerta para cargar y se apaga después de que se hayan cargado los datos? - joe shamuraq

Depende completamente de cómo esté cargando sus datos, pero presentará una vista cuando comience y la descartará en respuesta a un -didFinishLoading devolución de llamada del delegado o alguna otra notificación. UIAlertView también es el componente de interfaz de usuario incorrecto para usar para esto; debe usarse con moderación para presentar al usuario una opción. En general, debe evitar bloquear la interfaz de usuario principal con una vista modal al cargar cosas, especialmente en iOS. - Ryder Mackay

Su código no muestra un botón

 alert1 = [[UIAlertView alloc]initWithTitle:@"Loading" message:nil delegate:self cancelButtonTitle:**nil** otherButtonTitles:**nil**];

Si pasa nil como cancelButtonTitle Y nil como otherbuttonTitles, debe tener al menos un título de botón establecido.

contestado el 03 de mayo de 12 a las 18:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.