Curso Iphone. Sesión 6. Tablas y vistas modales

Download Report

Transcript Curso Iphone. Sesión 6. Tablas y vistas modales

Curso de Iniciación a la
Programación del iPhone
SDK con Objective-C
Tablas y vistas modales
Moncada, 9 de Julio de 2010
Vistas modales


Herramienta que te permite mostrar una nueva pantalla con
contenido
Se usa para:

Coger información del usuario inmediatamente

Presentar temporalmente un contenido

Cambiar el modo de trabaja temporalmente

Implementar interfaces alternativas cuando se cambia
la orientación
2
Vistas modales
3
Vistas modales
Mostrar un controlador de forma modal
[self presentModalViewController:viewController animated:YES];
Ocultar un controlador
[self dismissModalViewControllerAnimated:YES];
4
Vistas modales
¿Quién se encarga de mostrar y ocultar?
El controlador padre
¿Cómo?
Delegación
USO DE PROTOCOLOS
5
Demostración
6
Tablas
7
Tablas
Elementos importantes:
• UITableView
• UITableViewController
• Protocolos
– UITableViewDataSource
– UITableViewDelegate (Apariencia y comportamiento)
• Celdas (UITableViewCell)
– Predefinidas
– Personalizadas
8
UITableView
• Vista compuesta de celdas de un estilo en concreto
• Patrón de diseño
– Objeto UITableView
– Asignar delegado para los dos protocolos
– Implementar los métodos importantes:
• numberOfRowsInSection:(NSInteger)section;
• cellForRowAtIndexPath:(NSIndexPath *)indexPath;
• didSelectRowAtIndexPath:(NSIndexPath *)indexPath
9
UITableView
• Anatomía
10
UITableView
11
UITableViewController
• Punto de partida para crear una tabla
• Subclase de UIViewController
• Delegado de UITableViewDataSource y UITableViewDelegate
• Llama al método reloadData la primera vez
• Deselecciona las filas cuando la navegación vuelve
• Añade los indicadores de scroll a la tabla
12
Protocolos - UITableViewDataSource
Métodos importantes
– numberOfSectionsInTableView;
– numberOfRowsInSection:(NSInteger)section; *
– cellForRowAtIndexPath:(NSIndexPath *)indexPath; *
Otros métodos
– InsertSections, deleteSections, reloadSections
– insertRowsAtIndexPaths...
13
Protocolos - UITableViewDelegate
Métodos importantes
– willDisplayCell:forRowAtIndexPath;
Métodos para validar y responder a la selección
– willSelectRowAtIndexPath;
– didSelectRowAtIndexPath;
Métodos para celdas
– accessoryTypeForRowWithIndexPath
– accessoryButtonTappedForRowWithIndexPath
14
UITableViewCell
• Estilos de celdas
– UITableViewCellStyleDefault
– UITableViewCellStyleSubtitle
– UITableViewCellStyleValue1
– UITableViewCellStyleValue2
• Tipos de
– UITableViewCellAccessoryDisclosureIndicator
– UITableViewCellAccessoryDisclosureButton
– UITableViewCellAccessoryCheckmark
15
UITableViewCell
• Pasos para personalizar una celda
– Crear un fichero nuevo con IB (Empty Template)
– Añadir UITableViewCell a la ventana Window
– Añadir las vistas deseadas a la celda
– Asignar un TAG a cada vista añadida
– Asignar el controlador de la tabla como File's owner
– Conectar el outlet del controlador con la celda
– Guardar dentro del proyecto
16
UITableViewCell
• Acceder a la celda personalizada dentro del controlador
(Método cellForRowAtIndexPath){
UITableViewCell *cell;
//Cargar la celda del fichero NIB
[[NSBundle mainBundle] loadNibNamed:@”NibCell”];
//Asignar a la celda a devolver
Cell = NibCell;
//Acceder a las vistas de la celda mediante tag
[cell viewWithTag:(NSInteger)tag];
17
Demostración
18