2011-03-31 8 views
5

He creado una aplicación de barra de pestañas iOS con un controlador de navegación en una de las pestañas. Utiliza una animación flip cuando empuja o muestra vistas de la pila (descubrí cómo hacerlo here).¿Cómo puedo evitar que la barra de pestañas arruine mi transición de solapamiento?

Se ve muy bien, excepto por un problema con la barra de pestañas. La vista en la raíz de la pila muestra la barra de pestañas, pero para la siguiente he configurado hidesBottomBarWhenPushed en YES. Empujar funciona muy bien; el problema está volviendo al controlador de vista raíz. Mi opinión voltea desde la izquierda, excepto la barra de pestañas, que se desliza en

Aquí está mi código para hacer estallar el controlador de vista:.

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft 
         forView:self.navigationController.view 
         cache:NO]; 
[UIView setAnimationDuration:flipDuration]; 
[self.navigationController popViewControllerAnimated:NO]; 
[UIView commitAnimations]; 

Lo extraño es que si comento hacia fuera todos, excepto el cuarto comunicado , la barra de pestañas se comporta sola, no se desliza, simplemente aparece al instante con el resto. Por algún motivo, al agregar la transición, la barra de pestañas se dice a sí misma: 'Bueno, todos los demás están animados. ¿Por qué no debería animarme? Pero no poncy volteando para mí. Creo que me quedaré con una diapositiva ".

¿Qué puedo hacer? Idealmente, me gustaría que la barra de pestañas se active con el resto, pero también me alegra que se desvanezca después.

Respuesta

0

no es tan simple como crear una referencia al tabBarObject y luego agregar eso a la animación también, o eso tampoco funciona.

De esta forma puede animarlo de la misma manera que su vista, o de manera diferente.

+0

Gracias por su respuesta. Creo que eso no funcionó, pero lo verificaré tan pronto como regrese de un viaje que estoy tomando. –

+0

Probado self.navigationController.tabBarController.tabBar.hidden = YES al presionar el controlador de vista en lugar de establecer ocultaBottomBarCuando se presiona a SÍ. Se desvaneció antes de que comenzara la animación, aunque la nueva línea estaba entre beginAnimations y commitAnimations. Supongo que se debe a que la barra de pestañas se ajusta a la jerarquía demasiado arriba como para verse afectada por la animación de la vista. –

+0

esto podría ser cierto, déjame saber cómo te va. perdón no mucha más ayuda – theiOSDude

1

¡Lo tengo! Después de mirar esto, y otra respuesta a una pregunta diferente, encontré la solución.

En el controlador que desea impulsar la transición de, utilizar este código:

[UIView transitionWithView:[[self navigationController] view] 
        duration:0.3 
        options:UIViewAnimationOptionTransitionFlipFromRight 
       animations:^{ 
        [[self navigationController] pushViewController:theView animated:NO]; 
       } completion:NULL]; 

En su vista que desee hacer la transición hacia atrás, utilice este código:

[UIView transitionWithView:[[self navigationController] view] 
        duration:0.3 
        options:UIViewAnimationOptionTransitionFlipFromLeft 
       animations:^{ 
        [[self navigationController] popViewControllerAnimated:NO]; 
       } completion:NULL]; 

Esto mantiene la transición de eliminar con el tabBar. ¡Dale un tiro!

+0

Gracias por su interés. Te avisaré cuando haya probado tu solución. –

Cuestiones relacionadas