12
Experto en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-13 Depto. Ciencia de la Computación e IA Plataforma iOS Sesión 3: Controladores contenedores

Presentación de PowerPoint...• Filtran los contenidos de la tabla según la cadena de búsqueda • Necesita • Barra de búsqueda (UISearchBar) • Controlador de contenido (normalmente

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Presentación de PowerPoint...• Filtran los contenidos de la tabla según la cadena de búsqueda • Necesita • Barra de búsqueda (UISearchBar) • Controlador de contenido (normalmente

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-13 Depto. Ciencia de la Computación e IA

Plataforma iOS

Sesión 3: Controladores contenedores

Page 2: Presentación de PowerPoint...• Filtran los contenidos de la tabla según la cadena de búsqueda • Necesita • Barra de búsqueda (UISearchBar) • Controlador de contenido (normalmente

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

Plataforma iOS © 2012-13 Depto. Ciencia de la Computación e IA Controladores contenedores

Puntos a tratar• Controlador de navegación• Controlador de barra de pestañas• Controlador de búsqueda

2

Page 3: Presentación de PowerPoint...• Filtran los contenidos de la tabla según la cadena de búsqueda • Necesita • Barra de búsqueda (UISearchBar) • Controlador de contenido (normalmente

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

Plataforma iOS © 2012-13 Depto. Ciencia de la Computación e IA Controladores contenedores

Controlador de navegación• Las pantallas se almacenan en una pila• Tenemos una barra de navegación que incluye• Un título (propiedad title del controlador actual)• Un botón para volver atrás (propiedad title de la anterior pantalla)

3

Page 4: Presentación de PowerPoint...• Filtran los contenidos de la tabla según la cadena de búsqueda • Necesita • Barra de búsqueda (UISearchBar) • Controlador de contenido (normalmente

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

Plataforma iOS © 2012-13 Depto. Ciencia de la Computación e IA Controladores contenedores

Elementos de la navegación• Navigation Controller (UINavigationController)• Gestiona la navegación• No hace falta crear subclases

• Barra de navegación• Barra en la parte superior

• Navigation item• Contenido de la barra de navegación

• Controlador raíz• Pantalla principal de la navegación• Desde ella podemos apilar otras pantallas

4

RootViewController  *rootViewController  =          [[RootViewController  alloc]  initWithNibName:@"RootViewController"  bundle:nil];UINavigationController  *navController  =          [[UINavigationController  alloc]  initWithRootViewController:rootViewController];

Page 5: Presentación de PowerPoint...• Filtran los contenidos de la tabla según la cadena de búsqueda • Necesita • Barra de búsqueda (UISearchBar) • Controlador de contenido (normalmente

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

Plataforma iOS © 2012-13 Depto. Ciencia de la Computación e IA Controladores contenedores

Apilar pantallas• Apilar una pantalla

• Desapilar la última pantalla

5

-­‐  (void)tableView:(UITableView  *)tableView                                                                      didSelectRowAtIndexPath:(NSIndexPath  *)indexPath  {                DetailViewController  *detailViewController  =    [[DetailViewController  alloc]                          initWithNibName:@"DetailViewController"  bundle:nil];                NSString  *titulo  =  [NSString  stringWithFormat:  @"Item  %d",  indexPath.row];                detailViewController.title  =  titulo;            [self.navigationController  pushViewController:detailViewController  animated:YES];                                  [detailViewController  release];}

[self.navigationController  popViewControllerAnimated:YES];

Page 6: Presentación de PowerPoint...• Filtran los contenidos de la tabla según la cadena de búsqueda • Necesita • Barra de búsqueda (UISearchBar) • Controlador de contenido (normalmente

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

Plataforma iOS © 2012-13 Depto. Ciencia de la Computación e IA Controladores contenedores

Controlador de pestañas• Muestra una barra de pestañas• Cada pestaña muestra un controlador diferente• Se implementa con UITabBarController

6

UITabBarController  *tabBarController  =                                                [[UITabBarController  alloc]  init];tabBarController.viewControllers  =  [NSArray  arrayWithObjects:                                                controller1,  controller2,  controller3,  nil];

Page 7: Presentación de PowerPoint...• Filtran los contenidos de la tabla según la cadena de búsqueda • Necesita • Barra de búsqueda (UISearchBar) • Controlador de contenido (normalmente

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

Plataforma iOS © 2012-13 Depto. Ciencia de la Computación e IA Controladores contenedores

Propiedades de las pestañas• Título e icono• Se establecen como propiedades del controlador asociado a cada

pestaña

• También pueden establecerse desde el inspector de atributos

7

-­‐  (id)initWithNibName:(NSString  *)nibNameOrNil                                bundle:(NSBundle  *)nibBundleOrNil{        self  =  [super  initWithNibName:nibNameOrNil                                                        bundle:nibBundleOrNil];        if  (self)  {                //  Custom  initialization                self.title  =  @"Asignaturas";                self.tabBarItem.image  =  [UIImage  imageNamed:@"icono_asig"];        }        return  self;}

Page 8: Presentación de PowerPoint...• Filtran los contenidos de la tabla según la cadena de búsqueda • Necesita • Barra de búsqueda (UISearchBar) • Controlador de contenido (normalmente

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

Plataforma iOS © 2012-13 Depto. Ciencia de la Computación e IA Controladores contenedores

Controlador de búsqueda• Permite realizar búsquedas en una pantalla• Normalmente se utilizan en tablas (UITableViewController)• Filtran los contenidos de la tabla según la cadena de búsqueda

• Necesita• Barra de búsqueda (UISearchBar)• Controlador de contenido (normalmente el de la misma tabla)

Se utilizará para obtener los resultados de la búsqueda

8

Page 9: Presentación de PowerPoint...• Filtran los contenidos de la tabla según la cadena de búsqueda • Necesita • Barra de búsqueda (UISearchBar) • Controlador de contenido (normalmente

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

Plataforma iOS © 2012-13 Depto. Ciencia de la Computación e IA Controladores contenedores

Funcionamiento de la búsqueda• Al pulsar la barra la tabla queda en sombra• Al introducir texto se muestran los resultados de la búsqueda• ¡CUIDADO! La tabla de resultados la crea el controlador• Propiedad self.searchDisplayController.searchResultsTableView

9

Page 10: Presentación de PowerPoint...• Filtran los contenidos de la tabla según la cadena de búsqueda • Necesita • Barra de búsqueda (UISearchBar) • Controlador de contenido (normalmente

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

Plataforma iOS © 2012-13 Depto. Ciencia de la Computación e IA Controladores contenedores

Realizar la búsqueda• Definimos un método de UISearchDisplayDelegate• Filtramos los resultados según la cadena de búsqueda

• Se ejecuta cada vez que modificamos la cadena

• Si la operación es lenta, dejamos una operación en segundo plano y devolvemos NO

10

-­‐  (BOOL)searchDisplayController:                    (UISearchDisplayController  *)controller            shouldReloadTableForSearchString:(NSString  *)searchString  {                          self.itemsFiltrados  =  [self  filtrarItems:  _items                                                                        busqueda:  searchString];                  return  YES;}

Page 11: Presentación de PowerPoint...• Filtran los contenidos de la tabla según la cadena de búsqueda • Necesita • Barra de búsqueda (UISearchBar) • Controlador de contenido (normalmente

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

Plataforma iOS © 2012-13 Depto. Ciencia de la Computación e IA Controladores contenedores

Mostrar resultados• Comprobamos si la tabla es la original o la de resultados

11

-­‐  (NSInteger)tableView:(UITableView  *)tableView                            numberOfRowsInSection:(NSInteger)section  {        if(tableView  ==  self.searchDisplayController.searchResultsTableView)  {                return  [_itemsFiltrados  count];        }  else  {                return  [_items  count];                        }}

-­‐  (UITableViewCell  *)tableView:(UITableView  *)tableView                    cellForRowAtIndexPath:(NSIndexPath  *)indexPath  {        //  Obtener  celda  del  pool        ...                  if(tableView  ==  self.searchDisplayController.searchResultsTableView)  {                cell.textLabel.text  =  [_itemsFiltrados  objectAtIndex:  indexPath.row];        }  else  {                cell.textLabel.text  =  [_items  objectAtIndex:  indexPath.row];        }                  return  cell;}

Page 12: Presentación de PowerPoint...• Filtran los contenidos de la tabla según la cadena de búsqueda • Necesita • Barra de búsqueda (UISearchBar) • Controlador de contenido (normalmente

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

Plataforma iOS © 2012-13 Depto. Ciencia de la Computación e IA Controladores contenedores

¿Preguntas...?

12