You are on page 1of 23

Curso de Iniciacin a la Programacin del iPhone SDK con Objective-C

Controladores La lgica de la aplicacin

Moncada, 9 de Julio de 2010

Controladores

Qu es? Punto de partida Ciclo de vida


initWithNibName viewDidLoad viewWillAppear viewWillDisappear viewDidUnload Conectando la interfaz y su controlador

Creando controladores e interfaces

Qu es un controlador?

Funciones

Carga la vista y los valores iniciales

Recibe los eventos producidos en la interfaz


Gestiona autorotacin

(BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation

Libera los recursos relacionados con la vista


Contenedores: UINavigationController y UITabBarController Personalizados: Tu subclase de UIViewController Modales (aparecen en pantalla de una manera especial)

Tipos

Jerarqua en UIKit Framework

UIViewController

Qu puede contener?

Variables de tipo del modelo de datos Variables 'outlets' (IBOutlet) para conectar con objetos de la vista Acciones 'outlets' (IBAction) para conectar con objetos de control de la vista Otros mtodos auxiliares

UIViewController

Ciclo de vida de un controlador

Ciclo de vida

initWithNibName

Configuracin no relacionadas con la vista

viewDidLoad

Valores iniciales (relacionados con la vista)

viewWillAppear

La vista va a aparecer

viewWillDisappear

Guardar el estado

viewDidUnload

Liberar recursos

Ciclo de vida de un controlador

Creando controladores e interfaces

Como hemos dicho: 1 vista 1 controlador (comn) Cmo componemos una aplicacin con varias vistas? Usando controladores especiales UINavigationController UITabBarController

UINavigationController

10

UINavigationController

Sirve para representar datos jerarquizados Gestiona la barra de navegacin (UINavigationBar)


Botn 'Atrs' Ttulo de la vista actual Otros controles

Pila de controladores de vistas

11

UINavigationController

Mtodos importantes: Push para aadir un controlador de vista a la pila


- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;

Pop para eliminar un controlador de vista de la pila


- (UIViewController *)popViewControllerAnimated:(BOOL)animated;

Inicializar toda la pila de controladores (iPhone OS3.0)


- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated;

12

UINavigationController

Estructura fichero NIB

13

UINavigationController

Compartiendo datos entre vistas (Data flow) - Parmetros entrada en controlador de vista
[[DetailViewController alloc] initWithPerson:(Person *)person];

- Para comunicacin con 'vista padre' Protocolos-> delegacin

14

UINavigationItem

Todos lo controladores tiene una variable UINavigationItem Personaliza la barra superior cuando el controlador est arriba en la pila Estructura

NSString *title; UIBarButtonItem *leftBarButtonItem y *rightBarButtonItem

UIView *titleView;
NSString *backButtonTitle;

15

UINavigationItem

Personalizando la barra de navegacin

Configurando un botn derecho personalizado:


UIBarButtonItem *izqBoton = [UIBarButtonItem alloc]; [izqBoton initWithTitle:@Dale! style: UIBarButtonItemStyleBordered target:self action:@selector(metodoBoton:)]; self.navigationItem.leftBarButtonItem =izqBoton; [izqBoton release];

16

UITabBarController

17

UITabBarController

Sirve para separar la aplicacin en varios modos de ejecucin Utiliza una barra de pestaas (TabBar) para los distintos modos A diferencia con UINavigationController, UITabBarController almacena las vistas en un array.

18

UITabBarController

Estructura fichero NIB

19

UITabBarItem

Todos lo controladores tiene una variable UITabBarItem Personaliza la barra inferior de la aplicacin

Estructura

NSString *title; UIImage *image; NSString *badgeValue;

Personalizando UITabBarItem
initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:0];

UITabBarItem *item = [[UITabBarItem alloc] self.tabBarItem = item;

[item release];

20

Combinando controladores

21

Combinando controladores

22

Bibliografa

View Controller Programming Guide for iPhone OS Ejemplos en cdigo http://developer.apple.com

23