En una aplicación basada en la barra de pestañas, si he empujado a un controlador en la pila de navegación de una ficha y después, cuando otra pestaña está activo, trato de hacer estallar ese controlador, no quede en libertad a menos que el pop sin animación .¿UIKit no libera el controlador si no se elimina con la animación?
Esto funciona:
[navigationController popToRootViewControllerAnimated:NO];
Y esto sin que:
[navigationController popToRootViewControllerAnimated:YES];
¿Alguien tiene alguna idea de lo que está pasando aquí? ¿El parámetro animated
está siendo utilizado incorrectamente?
ACTUALIZACIÓN:
de Apple me informó que esto es de hecho un error en UIKit, y lo marcó alguien tan urgente y se le asigna. Puede que se haya resuelto en los últimos lanzamientos, pero no tuve tiempo de verificarlo.
suena como un error en UIKit. Si puede confirmarlo con un proyecto simple, envíelo a Apple. –
Acabo de crear un proyecto de muestra para confirmarlo, y puedo hacerlo. Por supuesto, no es algo que esté sucediendo con * cada * uso de UINavigationController. Sucede si tiene un UITabBarController con un controlador de navegación dentro de una pestaña, y desde otra pestaña abre el controlador de navegación. Lo que noté es que, si tienes más de 1 controlador de visualización en la pila, todos se liberan, excepto el último, que permanece retenido hasta que seleccionas la otra pestaña (la que tiene el controlador de navegación). – eugeniodepalo
Si por el "último" controlador que quiere decir el controlador de la raíz, entonces este es pertinente: "Si el controlador de vista en la parte superior de la pila es el controlador de vista raíz, este método no hace nada ... no se puede hacer estallar el último elemento la pila." (De la documentación para 'popViewControllerAnimated:'.) Muy rara vez tiene que preocuparse cuando UIKit libera objetos. Solo asegúrate de hacer tu parte de la gestión de la memoria. Quién sabe, tal vez los marcos se aferran a un objeto para reciclarlo más tarde? O tal vez no. El punto es que puedes confiar en que estén bien probados. – Felixyz