Curso de Iniciación a la Programación del iPhone SDK con Objective-CControladores – La lógica de la aplicación
Moncada, 9 de Julio de 2010
2
Controladores
¿Qué es? Punto de partida Ciclo de vida
initWithNibName viewDidLoad viewWillAppear viewWillDisappear viewDidUnload
Creando controladores e interfaces Conectando la interfaz y su controlador
3
¿Qué es un controlador?
Funciones Carga la vista y los valores iniciales Recibe los eventos producidos en la interfaz Gestiona autorotación
(BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
Libera los recursos relacionados con la vista Tipos
Contenedores: UINavigationController y UITabBarController Personalizados: Tu subclase de UIViewController Modales (aparecen en pantalla de una manera especial)
4
Jerarquía en UIKit Framework
5
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 métodos auxiliares
6
UIViewController
7
Ciclo de vida de un controlador
Ciclo de vida initWithNibName
Configuración 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
8
Ciclo de vida de un controlador
9
Creando controladores e interfaces
Como hemos dicho: 1 vista → 1 controlador (común)
¿Cómo componemos una aplicación con varias vistas?
Usando controladores especiales
UINavigationController
UITabBarController
10
UINavigationController
11
UINavigationController
Sirve para representar datos jerarquizados Gestiona la barra de navegación (UINavigationBar)
Botón 'Atrás' Título de la vista actual Otros controles
Pila de controladores de vistas
12
UINavigationController
Métodos importantes:
Push para añadir 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;
13
UINavigationController
Estructura fichero NIB
14
UINavigationController
Compartiendo datos entre vistas (Data flow)
- Parámetros entrada en controlador de vista[[DetailViewController alloc] initWithPerson:(Person *)person];
- Para comunicación con 'vista padre'
Protocolos-> delegación
15
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;
16
UINavigationItem
Personalizando la barra de navegación
Configurando un botón derecho personalizado:
UIBarButtonItem *izqBoton = [UIBarButtonItem alloc];
[izqBoton initWithTitle:@”Dale!” style: UIBarButtonItemStyleBordered target:self action:@selector(metodoBoton:)];
self.navigationItem.leftBarButtonItem =izqBoton;
[izqBoton release];
17
UITabBarController
18
UITabBarController
Sirve para separar la aplicación en varios modos de ejecución Utiliza una barra de pestañas (TabBar) para los distintos
modos A diferencia con UINavigationController, UITabBarController
almacena las vistas en un array.
19
UITabBarController
Estructura fichero NIB
20
UITabBarItem
Todos lo controladores tiene una variable UITabBarItem Personaliza la barra inferior de la aplicación Estructura
NSString *title; UIImage *image; NSString *badgeValue;
Personalizando UITabBarItem
UITabBarItem *item = [[UITabBarItem alloc]
initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:0];
self.tabBarItem = item;
[item release];
21
Combinando controladores
22
Combinando controladores
23
Bibliografía
“View Controller Programming Guide for iPhone OS”
Ejemplos en código
http://developer.apple.com