life example containerviewcontroller container iphone uiviewcontroller behavior viewdidload

iphone - example - lifecycle viewcontroller ios



iPhone-viewDidUnload/viewDidLoad llamado incoherentemente (1)

Estuve probando y depurando mi aplicación de Iphone hoy y encontré un comportamiento extraño.

En mi MainView tengo dos vistas modales y al mostrar una de ellas usando viewDidUnload noté que el método viewDidUnload de mi MainView se llamó mientras no estaba sucediendo al mostrar el otro. Fue el mismo caso para el método viewDidLoad (de MainView ) al cerrar las subvistas.

Inspeccioné los dos métodos para abrir y cerrar las subvistas y la única diferencia que encontré fue en modalTransitionStyle . En el que activaba viewDidUnload / viewDidLoad , estaba usando UIModalTransitionStyleFlipHorizontal y en el otro UIModalTransitionStyleCrossDissolve . Luego comencé a experimentar intercambiando los dos estilos y usando también los otros estilos de transición y descubrí que esto era realmente lo que estaba causando el comportamiento diferente. De hecho, al usar UIModalTransitionStyleFlipHorizontal los métodos viewDidUnload / viewDidLoad del controlador de vista "principal" siempre se llamaban mientras que nunca ocurría para ninguno de los otros estilos de transición.

Mi pregunta ahora es que se supone que debe comportarse así, y si no es cuál es el comportamiento correcto. ¿Se supone que deben invocarse los métodos de descarga y carga al mostrar y cerrar una vista modal o no?

Además, ¿podría alguien más confirmar o desconfirmar este comportamiento?

Gracias

PD. el método viewDidLoad de los dos controladores de vista llamados se llama cada vez. Solo para aclarar :)


¿Se supone que deben invocarse los métodos de descarga y carga al mostrar y cerrar una vista modal o no?

El comportamiento debe depender de la situación actual de la memoria. Si la memoria es baja, el sistema enviará advertencias de memoria a todos los controladores de vista. Un controlador de vista cuya vista no está actualmente en la pantalla reaccionará en la advertencia de memoria al descargar su vista (lo que provocará una recarga de la vista cuando vuelva a aparecer en la pantalla, obviamente).

Por lo tanto, dependiendo de la situación de la memoria del dispositivo y de los requisitos de memoria del controlador de vista modal que esté visualizando, el comportamiento de descarga / carga debería variar. No debe depender de modalTransitionStyle IMO.