Tab Bar Controller en Objective-C -Ejemplo- (Video)
Para descargar el proyecto de esta entrada pulsar AQUI.
En este tutorial se va a mostrar como trabajar con un Tab Bar Controller, y como trabajar de forma independiente con cada una de las vistas que componen este Tab Bar Controller. En este video-tutorial se realizará la siguiente aplicación. La tercera vista de este tutorial, corresponde al siguiente tutorial: NSTimer en Objective-C -Ejemplo- (Video).
A continuación se muestra el video del proyecto realizado:
A continuación mostramos los métodos que hemos utilizado para obtener la fecha y la hora en la app realizada en modo de ejemplo:
Código para obtener la fecha actual:
// cojo la fecha de hoy NSDate *hoy = [NSDate dateWithTimeIntervalSinceNow:0]; // La doy Formato y la guardo en el NSString fecha para imprimirlo NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"dd-MMMM-yyy"]; NSString *fecha = [dateFormat stringFromDate:hoy];
Código para obtener la hora. Para que se muestre cada segundo, se debe de utilizar un timer que llame cada medio segundo (mas o menos) a este método:
-(void) setHora{ // cojo la fecha de hoy NSDate *hoy = [NSDate dateWithTimeIntervalSinceNow:0]; // Calculo la hora, minutos y segundos NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *dateComponents = [gregorian components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:hoy]; NSInteger horas = [dateComponents hour]; NSInteger minutos = [dateComponents minute]; NSInteger segundos2 = [dateComponents second]; NSString *hora = [NSString stringWithFormat:@"%02i:%02i:%02i",horas, minutos, segundos2]; }
Richard que tal disculpa, necesito que este tab bar aparezca en el lado izquierdo de la pantalla, estoy trabajando con xamarin.ios, puedes darme alguna idea de como hacerlo, no se si me recomiendes mejor algun UITableview
Muchas gracias por tu ayuda Richard, voy a ver si hago pruebas y si lo consigo ya os comento, basicamente lo que quiero es que se carge la pantalla que no esta en el tab bar y permanezca estatica con los tabs cargados en la parte inferior, la navegacion por los tab bar seria manual, lo dicho voy a probar y os comento como se da, muchas gracias
Saludos
Lo primero muchas gracias por contestar Richard, quisiera poner una pantalla por defecto en un Tab Bar controller, de forma que cargue siempre por defecto. Actualmente la he tenido que añadir como un tab Home extra, que es la que carga por defecto al ser la primera, pero eso me rompe la estética del diseño, es decir, necesito cinco tabs y una pantalla inicial que se carge siempre por defecto pero no encontre otra forma de hacerlo que añadirlo como un tab nuevo.
Ejemplo :
Tab bar controler —> con cinco tabs / Perfil / Mensajes / Radar / Alertas / chat
Aparte de estos necesito que por defecto se cargue otra vista que es el home pero que no se pierdan los tabs anteriores y la unica forma que he visto de hacerlo es añadirlo como un nuevo tab, pero esto de rompe la estetica que me marcan, es posible cargar una imagen o viewcontroller en un Tab Bar Controller, si por defecto no se le puede asociar ninguna clase .m par implementar código?.
No se si me explique bien Richard
Muchas gracias
Un Saludo
Hola Jesus. Supongo que lo que quieres es que se cargue al principio una vista por defecto en la que no tenga el tab bar y luego que se cargue el tab bar. Si es eso lo que quieres te debes hacer una vista por defecto y luego que cargue el tab bar. Si es esto lo que quieres, mira el siguiente tutorial : http://jarroba.com/pasar-de-un-viewcontroller-a-otro-automaticamente-iphone/ en el que se carga una vista, en tu caso la vista por defecto y luego se carga pasado un tiempo otra vista que en tu caso esa segunda vista deberia tener el tab bar. Nose si es esto lo que quieres, pero es lo que he podido entender.
Si aun asi no te he responido a la pregunta me sigues diciendo, pero vamos todo esto es cuestion de ir probando (ensayo y error).
SL2
Hola muchas gracias por el Tutorial
Quiero que salga una imagen en el tab bar controller que no este asociada a ninguna de las cinco tabs que tengo creadas, como podría hacerlo??, seria cambiar el comportamiento normal del tab bar, para que no salga de primeras ninguna de las pantallas de los tabs creadas y si una imagen con botones independiente
Muchas gracias de antemano
Un Saludo
Hola Jesus. No entiendo muy bien tu pregunta, te refieres a que los Tab Bar no sean estáticos y sean dinámicos (eso creo que no se puede hacer) o te refieres a que no te aparezca de primeras el tab bar. Si haces el favor ponme un ejemplo concreto de lo que quieres hacer, porque no he entendido bien tu pregunta.
SL2
Hola gracias por el video!
Una consulta
Como puedo pasar por ejemplo el dato de un label o otro label de otra pantalla?
Saludos y gracias!
Hola Mauricio.
Pasar el contenido de una pantalla a otra no puedes como tal. Solo puedes asignar atributos (variables) de una clase a otra. En este tutorial (http://jarroba.com/pasar-datos-entre-viewcontrollers-usando-storyboards-y-segues/) puedes ver como se hace.
SL2