ver - cómo esconder un álbum de fotos en iphone
Cómo ocultar la barra de pestañas principal al presionar el controlador en navigationController (7)
Después de pasar horas y publicar una pregunta aquí, encontré que la solución a este problema es agregar la siguiente línea después de la instanciación de ArticleController.
articleController.hidesBottomBarWhenPushed = YES;
Tengo una aplicación con un controlador de barra de pestañas y cada vista contiene un controlador de navegación. Mi MainWindow tiene el aspecto siguiente: texto alternativo http://www.freeimagehosting.net/image.php?7bc867a594.png
Todo funciona bien como está, pero noté un problema al insertar una vista de detalles en el controlador de navegación. En didSelectRowAtIndexPath para un tableviewcontroller que pertenece al controlador de la barra de pestañas (el llamado Último en la imagen), estoy haciendo esto
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
ArticleViewController *articleController = [[ArticleViewController alloc] initWithNibName:@"ArticleView" bundle:nil];
[self.navigationController pushViewController:articleController animated:YES];
[articleController release];
articleController = nil;
}
ArticleViewController tiene su propia barra de pestañas porque necesita mostrar cosas diferentes. El problema es que cuando presiono el ArticleViewController en navigationController veo ambas barras de tabulación en la parte inferior de la vista. ¿Hay alguna manera de que pueda resolver este problema?
Gracias por adelantado
Puede agregar el siguiente código en el controlador de vista, que está presionando.
-(BOOL)hidesBottomBarWhenPushed
{
return YES;
}
Esto ocultará la barra de pestañas solo en el controlador de vista insertado y, al abrir la barra de pestañas del controlador de vista, se mantendrá en reposo en todos los controladores de vista.
Versión Swift (3.x y superior)
override var hidesBottomBarWhenPushed: Bool {
get {
return navigationController?.topViewController == self
}
set {
super.hidesBottomBarWhenPushed = newValue
}
}
Gracias
Puedes simplemente ocultar la barra de pestañas de los padres a través del guión gráfico.
Seleccione el controlador de vista > Inspector de atributos > marque Ocultar barra inferior en Push
Una solución muy simple:
destinationViewController.hidesBottomBarWhenPushed = YES;
En tu caso:
articleController.hidesBottomBarWhenPushed = YES;
¡Espero que esto ayude!
para swift 3, escriba el mismo código al mostrar la barra de pestañas antes del código pushviewController como se muestra a continuación
var frame = self.tabBarController?.tabBar.frame
frame?.origin.y = self.view.frame.size.height - (frame?.size.height)!+112
UIView.animate(withDuration: 0.2, animations: {
self.tabBarController?.tabBar.frame = frame!
})
self.navigationController?.pushViewController(viewController, animated: true)
o use solo lo que quiera para mostrar la barra de pestañas que puede usar
viewController.hidesBottomBarWhenPushed = false
introduzca la descripción de la imagen aquí
Vaya al creador de interfaces en Xcode -> abra el inspector de atributos y marque el elemento ''Ocultar barra inferior en Push'' para ver el controlador de vista que no desea que se muestre en la barra de pestañas. ¡¡Funcionará!!