En mi aplicación que funciona bien en iOS 4 navigationbar dissappeared a partir de iOS 5. Esto es lo que imaginé problema causado: Me estaba quitando subvistas en el método RootViewController viewWillAppear:iOS 5 UINavigationBar eliminación subvistas (imagen subvista) elimina la barra de navegación
for(UIView* view in self.navigationController.navigationBar.subviews)
{
if ([view isKindOfClass:[UILabel class]])
{
[view removeFromSuperview];
}
if([view isKindOfClass:[UIImageView class]])
{
[view removeFromSuperview];
}
}
Estaba haciendo esto porque el controlador de segunda vista que presiono sobre el controlador de navegación agrega la imagen y la etiqueta a la barra de navegación, que tengo que eliminar cuando aparece la vista. En iOS 5, el código anterior elimina la barra de navegación. ¿Cómo solucionar esto o la forma correcta de hacerlo para soportar tanto iOS4 como iOS 5?
Sí, esto funcionará técnicamente, pero su código será mucho menos comprensible si usted u otra persona necesita volver más tarde. Corre el riesgo de no poder leer de manera efectiva y hacer un seguimiento de lo que está haciendo su código. Por lo menos, cree esas constantes de etiquetas para ayudar a ver lo que está eliminando. – RPeck
Puede simplemente eliminar la subvista usando el siguiente código [(UILabel *) [self.navigationController.navigationBar viewWithTag: yourViewTag] removeFromSuperview]; – Himanshu