iOS : Ejercicio 5. Arquitectura Tab Bar Application (Tabbed Application)

Blog >Lista ejercicios >  Ejercicio 5


Hola developers, ya nos metemos con la arquitectura MultiView, ahora crearemos una aplicación con pestañas.




EJERCICIO 5 : Aplicación con arquitectura Tabbed - Application
Comenzamos explicando un poquito esta arquitectura :

Estas plantillas permiten desarrollar una aplicación que se basa en unas pestañas en una barra para presentar distintas vistas, cada una tendrá un contenido distinto.




Hay un controlador de tipo Tab BarController (UITabBarController) que nos permite activar la vista deseada.

Cada botón está asociado a una vista y podemos modificar el nombre y la imagen de cada pestaña en el inspector de atributos situado en la parte derecha.

Por defecto se mostrarán 2 vistas por defecto, pero se pueden añadir nuevas vistas arrastrando al storyboard objetos UIViewController y asociándolos de manera conveniente.
Cada vez que agregamos un View Controller solo nos queda realizar la conexión. (Tab Bar Controller)

Creamos un nuevo proyecto : Create new proyect - Tabbed Application

Esta es la apariencia de nuestro storyboard





Bien, ahora personalizamos un poco las vistas y añadimos un par de ViewControllers al storyboard para proceder a añadir más opciones en el Tab Bar, hacemos doble click en la vista principal y abajo del View Controller donde pone Tab Bar Controller hay 3 iconos, pues bien en el amarillo clickamos con el botón derecho del ratón y lo arrastramos a las nuevas View Controllers que hemos creado y personalizado, ahi seleccionamos View Controller :




Si queremos añadir alguna funcionalidad a las opciones que hemos agregado manualmente mediante código, tenemos que ir al proyecto - create new file - Objetive-C.class, sin marcar la opcion de generar el archivo .XIB seleccionar nombre clase, y subclass of UIViewController, movemos los dos archivos al proyecto, y en el panel de la derecha arriba en Custom Class, asociamos la clase creada con la view.


Ahora, ¿Como modificar el icono y el nombre de los items del Tab Bar? Lo tendremos que hacer es hacer doble click en el icono e item de cada View Controller, y aparecerá el panel de abajo, simplemente arrastramos nuestras imagenes al proyecto y los referenciamos desde ahí :



Además, si conectas mas de cinco View Controller a un Tab Bar Controller, automáticamente se crea una pestaña “More…” al momento de ejecutar la aplicación.





Compartir Compartir Compartir Compartir




Thebestandroide Indice Thebestandroide Ejercicio anterior Thebestandroide Siguiente ejercicio

7 comentarios:

  1. Hola Buena tarde
    Tengo los mismo botones así, pero al momento de seleccionar tengo otros que lo único que lo diferencia es que están sombreados, lo que yo quiero hacer es poner primero los normales pero al darle clic me aparezca la versión sombreada de los botones, tu sabes como se puede hacer esto?

    ResponderEliminar
    Respuestas
    1. Buenos días :
      No te entiendo muy bien, ¿Lo que quieres es que al darle click a un botón el botón se "sombree"? ¿cambio de apariencia en onClick?

      Eliminar
  2. Si exactamente :)
    Crees poder ayudarme, es que tengo dos imagenes una que esta en color normal y la otra que es el sombreado, y ala hora de hacer clic en el tab bar quiero que me aparezca la imagen que ya tengo sombreada

    ResponderEliminar
  3. No es muy complicado, hay que jugar con las propiedades del botón, ando currando ahora y lo tengo complicado hasta el miercoles, para entonces te pongo la solución, ok¿?
    Salu2!!

    ResponderEliminar
  4. Respuestas
    1. Disculpa la demora, te pongo aquí un par de links, espero que sea lo que buscas :

      http://stackoverflow.com/questions/7152989/how-to-turn-off-button-shadow-on-button-press-of-uibutton

      http://stackoverflow.com/questions/2315366/how-to-add-a-drop-shadow-to-a-uibutton

      Eliminar
  5. Hola, sabes cómo colocarle color a la barra de abajo donde se encuentran los botones, pues coloco una image view de color, pero en esa parte me aparece más clara.

    ResponderEliminar