2012-06-22 13 views
7

tengo el siguiente problema:pantallas Navegar usando la barra de pestañas y botones

En mi solicitud hay dos maneras de navegar a otras pantallas: por botones o por una barra de pestañas.

Todas las pantallas tienen la barra de pestañas que llama a las otras pantallas, pero la pantalla de inicio es la que tiene botones pero no tiene barra de pestañas.

Cuando comienzo a desarrollar mi aplicación elijo la plantilla de la aplicación de la barra de pestañas y funciona bien si llamo a las pantallas presionando la pestaña. El problema comienza cuando trabajo con la pantalla de inicio:

  • Necesito "ocultar" la barra de pestañas en esta pantalla específica.
  • En la pantalla de inicio, si llamo a una nueva pantalla con botones, la barra de pestañas desaparecerá en la nueva pantalla (tiene sentido porque la pantalla llama por un botón y no por la barra de pestañas).

Para resolver esto, creo que tal vez pueda crear una barra de pestañas personalizada (todavía no sé cómo) y llamarla a mis pantallas como un UIControl, así que de esa manera si necesito cambiar la barra de pestañas las modificaciones podrán en todas las pantallas que llamen ese control.

¿Qué me recomiendas? Es una buena idea crear una barra de pestañas personalizada y usarla como un UIControl? Si es así, ¿cómo puedo crear uno?

Lo utilizo para llamar a las ventanas

RecurringGiftListViewController *listViewController = [[RecurringGiftListViewController alloc] initWithNibName:@"RecurringGiftListViewController" bundle:nil]; 
listViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
[self presentModalViewController:listViewController animated:YES]; 
[listViewController release]; 
+0

se puede poner código de bits que se utiliza para empujar puntos de vista? – Ahmed

+0

@Ahmed seguro, yo uso, yo uso esto para llamar a Windows RecurringGiftListViewController * listViewController = [[RecurringGiftListViewController alloc] initWithNibName: @ "RecurringGiftListViewController" bundle: nil]; listViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentModalViewController: listViewController animated: YES]; [lanzamiento de listViewController]; – avmauricio

Respuesta

1

No suena como ou debe utilizar una barra de pestañas en absoluto. Una tabbar no debería desaparecer cuando presiona uno de los botones. Piense en ello como un menú principal para su aplicación. Puede tener otras pantallas, como un controlador de navegación o un cuadro de diálogo modal que abarque toda la pantalla, pero luego debería poder volver a la barra de pestañas.

Analice la estructura de su interfaz de usuario una vez más. ¿Quizás pueda reorganizarlo para hacer que su "pantalla de inicio" sea un diálogo accesible desde una de las páginas de la barra de pestañas?

+0

el problema es que el diseño de la aplicación es creado por el cliente, así que no creo que pueda cambiarlo – avmauricio

+1

Cuando un cliente le da un mal diseño, debe informarlo sobre por qué es malo, y cómo la interfaz de usuario Se supone que los paradigmas funcionan. Tenía un cliente que básicamente hacía un diseño web para su aplicación, completo con diminutas casillas de verificación. Intentar doblar Cocoa Touch en un mal diseño solo te causará dolor y dará como resultado un producto malo. Es una situación de perder-perder. – geon

1

Su problema es que está presentando su otra vista como 'modal'. Reemplace el código con lo siguiente:

RecurringGiftListViewController *listViewController = [[RecurringGiftListViewController alloc] initWithNibName:@"RecurringGiftListViewController" bundle:nil];    
//listViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
[self.navigationController pushViewController:listViewController animated:YES]; 
[listViewController release]; 

la esperanza que esto ayudará

Cuestiones relacionadas