Aprendiendo Objetive-C para IOS (Dia 7)

Guion del blog de curso de Objetive-C para IOS – DIA 7
nota: Esto es no es curso propiamente dicho, es un diario de autoaprendizaje de objetive-c, que me sirve para afianzar conocimientos, y de paso, tener un diario de referencia, con ejemplos propios de uso del lenguaje.
————-
Voy a completar el proyecto del ultimo día, con el método del botón cuatro, implementando el uso de una alerta para el móvil. Lo que seria el típico ALERT que sale en una pagina web, pero esta vez para iphone. Crearemos el Alert, y luego implementaremos un método para que recoja su pulsación, y haga algo con la opción elegida.

Aquí esta el código (Todo esto va en el ViewController.m):
– (IBAction)btn4_TouchUpInside:(id)sender {
    
    //Volcamos el texto original en el texto
    texto=txtOrigen.text;
    
    //Vamos a sacar una alerta en el movil, para ver como funciona.
    //Lo primero que debemos hacer, es crear un unevo objeto de alerta:
    UIAlertView *alerta=[[UIAlertView alloc] initWithTitle:@»Titulo» message:@»El mensaje que quiera» delegate:self cancelButtonTitle:@»Boton Cancelar» otherButtonTitles:@»Boton1″,@»Boton2″,@»Boton3″, nil];
    
    
    //Cambiamos el titulo de la alerta
    [alerta setTitle:[NSString stringWithFormat:@»Titulo: %@», texto]];
    
    //Con esto meto en la variable texto, el titulo del boton de indice 2 (Es Boton2)
    //nota: El boton cancelar es el indice 0
    texto=[alerta buttonTitleAtIndex:2];
    
    //Vamos a ver como podemos cambiar el color del fondo
    [alerta setBackgroundColor:[UIColor redColor]];
    
    ////////
    //Voy a rellenar botones de forma dinamica
    //Para eso me creo un array:
    NSArray *botones=[[NSArray alloc] initWithObjects:@»Zaragoza», @»Huesca», @»Teruel», nil];
    
    //Ahora lo rellenamos con un bucle
    for(int i=0; i<[botones count];i++){
        [alerta addButtonWithTitle:[botones objectAtIndex:i]];
    }
    
    //Fijaos que hay demasiados botones, es mejor no poner tantos.
    ////////
    
    
    
    //Mostramos la alerta
    [alerta show];
    
    //Liberamos recursos de memoria de la alerta
    [alerta release];
    
    //Metemos el texto en el txtDestino
    txtDestino.text=texto;
    
}
//Me creo un metodo para recoger el boton que pulse en una alerta
//Este metodo sera generico para todos los alerts
– (void) alertView: (UIAlertView *) alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    
    //Puedo crearme un NSString para recoger el texto del boton pulsado
    NSString *titulo=[alertView buttonTitleAtIndex:buttonIndex];
    
    //Y ahora evaluar el texto que hay en el boton
    if([titulo isEqualToString:@»Boton1″]){
        txtDestino.text=@»Has pulsado el boton 1″;
    }else{
        txtDestino.text=@»Has pulsado otro boton»;
    }
    
    //O directamente podemos usar el indice del boton pulsado, para asignar el texto del boton donde queramos
    txtDestino.text=[alertView buttonTitleAtIndex:buttonIndex];
    
    //O usar un switch para que dependiendo del indice, me muestre una cosa u otra
    switch(buttonIndex){
        case 0:
            txtDestino.text=@»Has pulsado el indice 0″;
            break;
        case 1:
            txtDestino.text=@»Has pulsado el indice 1″;
            break;
        default:
            txtDestino.text=[NSString stringWithFormat:@»Otro indice %i», buttonIndex];
            break;
    }
    
}