5

no tuve suerte con la búsqueda de esto, así que aquí vamos;)popViewController/viewWillAppear no animada en IOS 5

Tengo un UIViewController con una costumbre UINavigationBar que empuja otra UIViewController como subvista.

Todo funciona bien excepto cuando hago clic en el botón Atrás en la subvista. La vista previa (primera) aparece correctamente, pero no animada. La animación del UINavigationBar es correcta, solo las vistas cambian inmediatamente.

La función - (void)viewWillAppear:(BOOL)animated de la primera UIViewController es llamado con NO para animated. Esto solo ocurre cuando pruebo con iOS 5, no con iOS 4.

¿Alguien sabe cómo solucionar esto?

Gracias por su ayuda! Hannes

Actualización 1

me acaba de quitar todos los códigos personalizados y simplemente utiliza los UINavigationBar (por lo que no hay ningún ajuste adicional) de civil y que todavía no funciona con iOS 5. Este es mi código que utilizo en el primero ViewController para empujar la segunda ViewController:

[self.navigationController pushViewController:secondViewController animated:YES];

Como ya he dicho - al hacer clic en el botón Atrás en la barra de navegación en el segundo punto de vista la primera vista aparece inmediatamente sin animación.

¡Cualquier ayuda sería apreciada! ¡Gracias!

ACTUALIZACIÓN 2

Siento que estoy más cerca de la cuestión, pero todavía no hay solución:

acabo añade una costumbre UINavigationController donde acabo de llamar [super popViewControllerAnimated:animated]. de este ser llamado correctamente (animado es SI), pero el viewWillAppear de la primera UIViewController no obtiene por la relación calidad animada ...

Respuesta

6

que estaba teniendo un problema similar en la actualidad, donde la UIViewController estaba recibiendo NO en viewWillAppear, excepto con la norma UINavigationBar y UINavigationController.

Resultó ser debido a llamar manualmente al viewWillAppear:YES en algún lugar que no debería haber sido. This item sugiere que también puede ser causado llamando al método incorrecto super en algún lugar (p.[super viewWillAppear:animated] en lugar de [super viewDidAppear:animated] dentro de viewDidAppear).

cuanto al uso de una costumbre UINavigationBar, me encontré con este enlace hoy que puede ayudar a su caso: http://sloshire1.posterous.com/simple-fix-for-viewwillappear-in-ios5

+2

¡Dios mío, gracias sooomuch! ¡Me estaba volviendo loco con este! Acabo de descubrir que había '[super viewWillAppear]' en 'viewDidAppear' de mi' UITabBarController' personalizado. ¡Gracias de nuevo! – Hannes

+0

@Hannes gracias a mí funciona @Hannes ¿estás usando 'Rumex CustomTabbar (RXCustom Tabbar)' Acabo de ocultar el '[super viewWillAppear]' en el viewDidAppear de mi UITabBarController personalizado. ¿Esto crea algún problema? ¿Cuál fue el problema con esto? –

+0

@Hannes estoy abriendo 'viewcontroller modal actual' en ese momento estoy obteniendo el mismo problema. ¿Tiene alguna idea? –

0

de Apple implementa formas oficiales para crear barras de navegación personalizados en iOS 5. Por desgracia, también se rompió la mayor parte del formas no oficiales de hacerlo en iOS 4. iOS 5 ya no llamará a drawRect por ti. Debe tener dos formas de hacerlo, una para iOS 5 y superior, utilizando las nuevas llamadas y otra para iOS 4 y anteriores, utilizando las llamadas anteriores. Consulte la documentación de barras de navegación personalizadas en iOS 5 para obtener más información.

+0

Hola Owen, gracias de por meterse en esto. Subclasé 'UINavigationBar' y lo vinculé en el archivo .xib para obtener un encabezado personalizado; funciona para iOS 4 y 5. Sin embargo, eliminé el' UINavigationBar' personalizado y solo la barra normal y aún el mismo efecto, las vistas se animan correctamente al mostrar la subvista, pero cambiar de inmediato al hacer clic en el botón Atrás. – Hannes

0

¿Intentó eliminar todo su código personalizado e ir con la barra de navegación nativa? ¿El comportamiento sigue siendo el mismo? De esta forma puede verificar si su barra personalizada está en problemas con la transición.

+0

Gracias, acabo de hacer eso, pero la primera vista aparece sin animación ... Actualicé mi pregunta. – Hannes