iOS : Ejercicio 10. Distintos tipos de AlertDialog

Blog >Lista ejercicios >  Ejercicio 10


Hola desarrolladores,continuamos el tutorial de ejercicios con este que trata sobre los AlertViews.





Ejercicio 10 : Clase UIAlertView, Tipos de AlertViews 


Sólo se pueden crear mediante código, y nos va a permitir mostrar mensajes en la interfad de usuario. Forma parte del framework UIKit y se encarga de crear instancias de "avisos" o mensajes para iOS. 

Creamos un proyecto de la forma habitual, file - new - proyect - Single View Application.
Ahora en nuestro storyboard creamos un botón y un label, hacemos las conexiones necesarias y hacemos que el ViewController.h herede de UIAlertView.
El botón valdrá para que al pulsarlo se muestre el AlertView :





El código del ViewController.h con las conexiones a los objetos del storyboard :


@interface ViewController : UIViewController UIAlertViewDelegate
@property (strong, nonatomic) IBOutlet UILabel *label;
-(IBAction)AccionBoton:(id)sender;
@end


En el archivo ViewController.m nos apareció el método AccionBoton, que es el que va a ejecutar cualquier acción al pulsar el botón.Sólo pondremos ahí dentro [msg show] que es la instrucción para mostrar el Alert, ahora vamos al viewDidLoad, que es el que se usa para cargar datos según se ejecuta la aplicación, el código para implementar el AlertView es:


@implementation ViewController
//DECLARAMOS EL ALERT AQUI PARA QUE SE PUEDA USAR DESDE EL MÉTODO DEL BOTÓN
UIAlertView *msg
//TRAEMOS EL OBJETO LABEL DECLARADO EN EL .H
@synthesize label;
//Texto a mostrar
NSString *texto
- (void)viewDidLoad
{
 [super viewDidLoad]
 msg = [[UIAlertView alloc]
     initWithtitle :@"Este es el blog Thebestandroide"
     message :nil
     delegate :self
     cancelButtonTittle :@"Ok"
     otherButtonTitles:nil,nil];
}
-(IBAction)AccionBoton :(id)sender {
[msg show];
}
@end


Ejecutamos la aplicación, veremos que al pulsar sobre el botón, nos saldra nuestro AlertView :





Si implementamos el protocolo UIViewAlertDelegate proporcionaremos un objeto opcional que recibirá una notificación cuando el usuario pulse algún botón de la notificación.Y la instrucción [msg show] Muestra el aviso. Vamos a introducir más botones:

- (void)viewDidLoad
{
 [super viewDidLoad]
 msg = [[UIAlertView alloc]
     initWithtitle :@"Este es el blog Thebestandroide"
     message :nil
     delegate :self
     cancelButtonTittle :@"Ok"
     otherButtonTitles:@"Opcion 1",@"Opcion 2",@"Opcion 3",@"Opcion 4",nil];
}






Bien, ahora tenemos que asignarles funcionalidad a los botones, simplemente para saber que opción ha pulsado el usuario, a continuación pongo una serie de métodos importantes muy relevantes, usaremos los que nos convengan :


  • clickedButtonAtIndex : En el objeto delegado podremos saber qué botón se ha pulsado. El primer parámetro es una referencia que apunta a la ventana y el segundo es un entero que funciona de índice.
  • cancelButtonIndex : Guarda la posición del índice del botón de cancelación.
  • firstOtherButtonIndex : Indica el índice del primero de los botones especificados opcionalmente durante la creación del mensaje.



-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
 //EL 0 SUELE SER CANCEL BUTTON
 if(buttonIndex==0){
  texto=@"5";
 }
 if(buttonIndex==0){
  texto=@"1";
 }
 if(buttonIndex==0){
  texto=@"2";
 }
 if(buttonIndex==0){
  texto=@"3";
 }
 if(buttonIndex==0){
  texto=@"4";
 }
 label.text=texto;
}


Bien, entonces cada vez que elijamos una opción en nuestro label se cargará el texto que hemos condicionado, para que se ponga un valor por opción seleccionada, por ejemplo la "Opcion 4" :





Vamos ahora a darle estilos, el formato para darle estilo es así :


 msg = [[UIAlertView alloc]
     initWithtitle :@"Este es el blog Thebestandroide"
     message :nil
     delegate :self
     cancelButtonTittle :@"Ok"
     otherButtonTitles:@"Opcion 1",@"Opcion 2",@"Opcion 3",@"Opcion 4",nil];
msg.alertViewStyle = UIAlertViewStyleDefault;

Entonces :
msg.alertViewStyle = UIAlertViewStyleDefault;



msg.alertViewStyle = UIAlertViewStylePlainTextInput;




msg.alertViewStyle = UIAlertViewStyleSecureTextInput;



msg.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;



Ahora lo que vamos a ver es como recoger los campos de texto introducidos, por ejemlo en el estilo UIAlertViewStyleLoginAndPasswordInput, para ello, vamos a nuestro storyboard, creamos otro label, arrastramos la conexión como hemos echo con el primero, no os olvideis de la claúsula @syntetize en el .m y para finalizar, dejaremos la función clickedButtonAtIndex así :


-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
 //Recogemos los datos
 UITextField *user=[alertView textFieldAtIndex:0];
 UITextField *password=[alertView textFieldAtIndex:1];
 //Los implantamos en los label del storyboard
 label.text=[NSString stringWithFormat:@"Usuario : %@",user.text];
 pass.text=[NSString stringWithFormat:@"Password : %@",password.text];
}






Vualá!! ya esta!




Compartir Compartir Compartir Compartir




Thebestandroide Indice Thebestandroide Ejercicio anterior Thebestandroide Siguiente ejercicio

0 comentarios:

Publicar un comentario