martes, 17 de abril de 2012

UIAlert Objective C


Hola ya tenia muchísimo tiempo sin darle continuidad a este blog. Debido a las necesidades del trabajo les comento que actualmente estoy trabajando en una app para iphone por lo que me he dado a la necesidad de aprender a programar en objective C, por lo que aqui les ire dejando algunas funciones y clases que me han sido de gran ayuda y espero  que a aquellos que se esten adentrando a este mundo de las apps les sirva tambien.

como primer ejemplo para aquellos que empiezan y que como yo no habían manejado C antes de..  Creo que lo mas lioso es aprender a usar  eso del MVC pero en realidad no es tan complicado como parece y lo mejor es que XCODE  lo hace aun mas facil.

En esta entrada hare un ejemplo muy sencillo de un boton  que muestre una Alerta.  Como Dato les digo que  estoy trabajando con el Xcode 4.3.2 que es el que te permite trabajar con la nueva version 5.1 del iOS de iphone ok, pues empecemos.


Para empezar damos en New project y elegimos la opción SingleViewApplication, nos va a pedir el nombre y la ruta donde la vamos a guardar. A mi proyecto le puse ShowAlert. nos va a crear una serie de carpetas al desplegar el projecto podemos ver que nos creo varios archivos tambien.  entre ellos se incluye los delegates son como los archivos principales de la App y nos creo los archivos ViewController que es desde donde vamos a darle las acciones a los objetos que pongamos en la vista principal nos creo un MainStoryBoard que es la vista principal claro que todo esto lo podemos modificar pero vamos a trabajar con eso para empezar.

Al dar clic sobre MainStoryBoard nos muestra un rectángulo blanco que viene simbolizando la pantalla de nuestro iPhone, en esta vista el panel de lado derecho de nuestra ventana esta dividido en 2 y nos muestra en la parte superior los atributos del objeto que seleccionemos, y en la parte inferior nos muestra la biblioteca de objetos  que tenemos disponibles para dar vida a nuestras aplicaciones.
en esta vista vamos a buscar un boton desde la biblioteca y lo arrastramos al rectángulo blanco que tenemos en la ventana.

Lo estiramos al tamaño que queramos y lo centramos.
Ahora nos vamos a dirigir al archivo ViewController.h y lo declaramos, abrimos llaves después del ViewController y antes del end y declaramos  el boton con el nombre PressBtn que es de tipo UIButton ponemos antes que es un IBOutlet por que estamos diciendo que es un objeto que estamos colocando desde el InterfaceBuilder ose la ventana de las vistas. Quedaria como el siguiente.

@interface ViewController :UIViewController
{
IBOutlet UIButton *Pressbtn;
}

En este archivo .h  es donde siempre se declaran las variables que vas a utilizar en diferentes partes del código al igual que los metodos o funciones.
Ahora nos vamos al archivo Viewcontroller.m,  y en la sección - (void)viewDidLoad que significa que todas las acciones que declaremos aqui se realizaran  cuando la vista se este cargando.
 ahi vamos a poner el titulo al boton claro que esto se puede hacer desde la ventana de vista (Interface Builder) pero aprovechemos para ver algunas acciones del Botton.
para darle el titulo lo que vamos a hacer es lo siguiente:

- (void)viewDidLoad
{
[super viewDidLoad];
[Pressbtn setTitle:@"presioname..." forState:UIControlStateNormal];
// Do any additional setup after loading the view, typically from a nib.
}

PressBtn es el nombre del objeto y le estamos diciendo que a este boton le ponga el titulo de presioname  para el estado Normal,  aprovecho para mencionar todas las cadenas (strings que quieras mostrar en objective C se ponen de esta manera @"" y dentro de las comillas la cadena que se quiera mostrar) en cuanto a los estados un boton tiene diferentes estado puede ser Normal, Presionado o Seleccionado.

Ahora vamos  a crear una nueva funcioncita para decirle que hacer cuando se presione este boton, para poner una acción a un objeto creado desde el Interface builder se declara de la siguiente manera 

-(IBAction)nombre de lafuncion
y si quieres mandar alguna variables a la función seria:

-(IBAction)nombre_de_la_función:(el tipo de dato)nombre_del_dato
en este caso nuestra funcion quedaria así:

-(IBAction)presionameAction:(id)sender {
}

En este caso el id sender es el id del boton esto es por que podemos usar la misma acciones para diferentes botones y para identificarlos usaríamos el id esto le podemos ver en algún ejemplo mas adelante.
dentro de esta función vamos a poner la AlertView que es una alerta con un mensaje y el boton Ok  generalmente y quedaria de la siguiente manera.

-(IBAction)presionameAction:(id)sender {
UIAlertView *alerta=[[UIAlertView alloc] initWithTitle:@"ALERTA" message:@"Esta es una caja de alertas" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];

[alerta show];
[alerta release];
[Pressbtn setTitle:@"Ya presionaste" forState:UIControlStateNormal];
}

Inicializamos nuestra alerta que es de tipo UIAlertView con el titulo ALERTA y el mensaje Esta es una caja de alertas. no lleva ninguna acción al presione (delegate) y el boton se llama OK no lleva ningún otro Boton(nil)
Lo mostramos (alerta show) y luego lo liberamos de la memoria (alerta release), la liberación es muy importante cada variable u objeto que se inicializa como alloc (alojado en memoria) se tiene que liberar.

y aprovechamos tambien para cambiar el titulo del boton a Ya presionaste ok.

Ahora volvemos a la ventana de la vista o sea el archivo  MainStoryBoard y seleccionamos el boton y con clic derecho nos mostrara un menu en colo negro seleccionamos en el area de SET Events la opción que dice TouchUpInside y el circulito que esta a la derecha de esta opción la arrastramos hasta el menu  izquierdo donde dice ViewController y va a aparecer un texto con fondo negro que dice el nombre de nuestra función lo soltamos y  volvemos a dar clic derecho en nuestro boton y en la sección donde dice New Reference o igual lo arrastramos hasta ViewController y nos aparecera igual que la función pero ahora el nombre que le dimos a nuestro objeto PressBtn.
Listo eso es todo ahora lo corremos y mostrara el boton como en la siguiente imagen.



Espero les ayude en algo este ejemplo, nos vemos la próxima.

"Programar no tiene que ser tan difícil como parece...."

1 comentario: