Este curso es para aquellos que están empezando a diseñar sus propias aplicaciones o expertos que desean realizar tareas más complejas.
El contenido del curso:
Hola Juan, ante todo gracias y enhorabuena por las webs. Estoy intentando hacer algo muy sencillo que se me esta poniendo complicado, jajaja. Necesito cargar una primera pantalla de login y desde esa pantalla pulsando un botón cargar un tabbar. He encontrado en muchos sitios como cargar un tabbar desde inicio pero no consigo hacer que cargue una pantalla en blanco normal con un botón y al pulsar el botón se presente el tabbar. Gracias.
Hola Raúl, gracias a tí.
A ver, para crear un UITabBar debes hacer algo como lo siguiente:
//crear el objeto, no necesitas obligatoriamente un UITabController ya que puedes controlar los eventos desde el objeto en el que estés
// si tuvieras más de un tabbar sí que tendrías que usar distintos controladores cada uno con sus manejador (controlador)
UITabBar *myTabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 360, 320, 49)]; //ajustar aquí posición y tamaño
//añadir todos los botones:
[myTabBar setItems:[NSArray arrayWithObjects:[[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:0] autorelease], nil]];
//ahora se especifica que los eventos se pasen por la clase controladora actual, tiene que heredar: UIViewController .
[myTabBar setDelegate:self];
//por último añadimos el tabbar a la vista
[self.view addSubview:myTabBar];
[myTabBar release];
para controlar las acciones al cambiar de botón, tienes la función
- (void) tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
}
Para poder diferenciar cada item se suele utilizar la propiedad tag, al declarar un UITabBarItem se puede especificar con su función setTag.
La clase tiene que heredar de UITabBarDelegate, el formato del comentario no dejaba que apareciera porque va entre «menorque» UITabBarDelegate «mayorque»
Esa línea es fundamental para poder recoger los eventos que lanza el objeto, mira como funciona la herencia, añade UITabBarDelegate a tu UIVIewController y ya estarían funcionando el control de eventos
Hola Juan.
Muchas gracias por la información pero, quería saber si me puedes ayudar con un proyecto que estoy realizando, me dan dos fechas y necesito sacar la diferencia en días entre las dos, ya sé cómo separarlas entre día, mes y año pero, al hacer la fórmula me estoy enredando mucho, te agradecería mucho cualquier ayuda.
Hola Camilo, he hecho una búsqueda sencilla en Google por diferencias entre fechas y en stackoverflow.com hay varias soluciones a ese problema, aquí tienes una de ellas:
//---------
NSDateFormatter *nsdf = [[NSDateFormatter alloc] init];
[nsdf setDateFormat:@"dd-MM-yyyy"];
NSDate *date1 = [nsdf dateFromString:@"18-10-1979"];
NSDate *date2 = [nsdf dateFromString:@"18-10-1978"];
NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1];
int numberOfDays = secondsBetween / 86400;
NSLog(@"There are %d days in between the two dates.", numberOfDays);
Hola Juan estoy haciendo una aplicación muy sencilla y no he podido implementar que diferentes botones carguen diferentes URLs usando la misma UIWebView. Me pregunto cómo haríamos par que me ayudaras en revisar otros aspectos de la app… Gracias
Hola Jorge, pues usa javascript dentro del html en el UIWebView, guardas un array de urls y puedes interactuar desde OBJ-C con el JS, mírate los secretos de UIWebView
Hola Juan, ante todo gracias y enhorabuena por las webs. Estoy intentando hacer algo muy sencillo que se me esta poniendo complicado, jajaja. Necesito cargar una primera pantalla de login y desde esa pantalla pulsando un botón cargar un tabbar. He encontrado en muchos sitios como cargar un tabbar desde inicio pero no consigo hacer que cargue una pantalla en blanco normal con un botón y al pulsar el botón se presente el tabbar. Gracias.
Hola Raúl, gracias a tí.
.
A ver, para crear un UITabBar debes hacer algo como lo siguiente:
//crear el objeto, no necesitas obligatoriamente un UITabController ya que puedes controlar los eventos desde el objeto en el que estés
// si tuvieras más de un tabbar sí que tendrías que usar distintos controladores cada uno con sus manejador (controlador)
UITabBar *myTabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 360, 320, 49)]; //ajustar aquí posición y tamaño
//añadir todos los botones:
[myTabBar setItems:[NSArray arrayWithObjects:[[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:0] autorelease], nil]];
//ahora se especifica que los eventos se pasen por la clase controladora actual, tiene que heredar: UIViewController
[myTabBar setDelegate:self];
//por último añadimos el tabbar a la vista
[self.view addSubview:myTabBar];
[myTabBar release];
para controlar las acciones al cambiar de botón, tienes la función
- (void) tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
}
Para poder diferenciar cada item se suele utilizar la propiedad tag, al declarar un UITabBarItem se puede especificar con su función setTag.
Hola Juan, he probado a meter el código en un botón y me da el siguiente error en esta línea
[myTabBar setDelegate:self];
me dice que Sending MainViewController to parameter of incompatible type id
Gracias
La clase tiene que heredar de UITabBarDelegate, el formato del comentario no dejaba que apareciera porque va entre «menorque» UITabBarDelegate «mayorque»
Comentando la línea de código carga bien la app. Gracias.
Esa línea es fundamental para poder recoger los eventos que lanza el objeto, mira como funciona la herencia, añade UITabBarDelegate a tu UIVIewController y ya estarían funcionando el control de eventos
Hola Juan.
Muchas gracias por la información pero, quería saber si me puedes ayudar con un proyecto que estoy realizando, me dan dos fechas y necesito sacar la diferencia en días entre las dos, ya sé cómo separarlas entre día, mes y año pero, al hacer la fórmula me estoy enredando mucho, te agradecería mucho cualquier ayuda.
Hola Camilo, he hecho una búsqueda sencilla en Google por diferencias entre fechas y en stackoverflow.com hay varias soluciones a ese problema, aquí tienes una de ellas:
//---------
NSDateFormatter *nsdf = [[NSDateFormatter alloc] init];
[nsdf setDateFormat:@"dd-MM-yyyy"];
NSDate *date1 = [nsdf dateFromString:@"18-10-1979"];
NSDate *date2 = [nsdf dateFromString:@"18-10-1978"];
NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1];
int numberOfDays = secondsBetween / 86400;
NSLog(@"There are %d days in between the two dates.", numberOfDays);
//---------
Cuya salida es
There are -365 days in between the two dates
Hola Juan estoy haciendo una aplicación muy sencilla y no he podido implementar que diferentes botones carguen diferentes URLs usando la misma UIWebView. Me pregunto cómo haríamos par que me ayudaras en revisar otros aspectos de la app… Gracias
Hola Jorge, pues usa javascript dentro del html en el UIWebView, guardas un array de urls y puedes interactuar desde OBJ-C con el JS, mírate los secretos de UIWebView