He encontrado la manera dura que¿Cuál es la diferencia entre navigationController.navigationBarHidden y navigationController.navigationBar.hidden?
navigationController.navigationBarHidden = NO;
y
navigationController.navigationBar.hidden = NO;
no son la misma cosa. De hecho, si uso la primera sintaxis para ocultar la barra de navegación, entonces no puedo usar la segunda sintaxis para mostrarla: simplemente no hará nada. Además, la primera sintaxis para mostrar/ocultar la barra de navegación siempre me funciona, mientras que la segunda sintaxis funciona algunas veces, pero no siempre. No he podido determinar exactamente cuándo funcionaría y cuándo no.
Como estaba atascado con la fijación del código de otra persona (una aplicación razonablemente grande: más de 20 UIViewControllers), tuve que hacer una búsqueda global de navigationBar.hidden
y reemplazarla por navigationBarHidden
. Después de eso, tuve que hacer una búsqueda global de navigationBar setHidden:
y reemplazar con la sintaxis navigationBarHidden
. Esto eventualmente solucionó el problema.
Sin embargo, quiero entender por qué se proporcionan las dos opciones diferentes y cuál es la diferencia real entre ellas.
Ok, empieza a tener sentido. Esto significa que no debería usar 'navigationBar.hidden' directamente, sino que usar' navigationBarHidden' en su lugar - ¿no? –
sí, este parece ser el caso, ya que tiene una propiedad explícita que oculta y muestra el navBar –
@AleksG por favor lea la respuesta actualizada –