tarda - mi iphone no carga se queda en rojo
ConfiguraciĆ³n de ocultaBottomBarCuando se deja presionada la barra inferior deja de funcionar despuĆ©s de que se quita View Controller (9)
Tengo la siguiente configuración:
Una aplicación de barra de pestañas. En una pestaña hay un controlador de navegación.
Mi flujo de trabajo:
Cuando presiono un nuevo viewController en la pila del controlador de navegación, configuro la propiedad hidesBottomBarWhenPushed.
Esto funciona muy bien, la barra de pestañas se "empuja" a medida que el nuevo controlador de vista se desliza en su lugar.
El problema:
Cuando abro este controlador de vista y el controlador de vista raíz se muestra una vez más, sin embargo, la barra de pestañas se ha ido.
El controlador de navegación ha crecido para llenar el espacio que deja la barra de pestañas.
¿Hay alguna propiedad que deba configurar para que la barra de pesas vuelva a estar visible?
Lo que he intentado:
Apareciendo a la vista raíz manualmente
configuración (restablecimiento) de hidesBottomBarWhenPused para la vista raíz
cambiar el tamaño de la vista raíz
cambiar el tamaño de la propiedad de vista del controlador de navegación (solo deja un "espacio en blanco" donde debe estar el tabulador)
Lo que "sorta" funcionó:
Si configuro el índice seleccionado del controlador de la barra de pestañas en cualquier otro índice, aparece la barra de pestañas. Entonces sé que todavía está "a la vuelta", pero esto hace poco para ayudarme.
Hago algo similar en mi aplicación, solo llamé:
[self.navigationController popToRootViewControllerAnimated:YES];
parece hacer el truco y la barra de pestañas está de vuelta, sin duda, esto es en respuesta a presionar un botón en lugar del botón pop de la barra de navegación. Me parece recordar que funcionó bien al usar también el botón de retroceso de la barra de navegación.
Quizás compruebe que solo está configurando un único controlador de vista para tener la propiedad hidesBottomBarWhenPushed configurada en YES.
este es el mismo problema que tuve, pero obtuve una solución, intente esto, descubrí que ocultar y luego mostrar la tabbar inmediatamente después del empuje, resuelve nuestro problema
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSDictionary *theItem = [items objectAtIndex:indexPath.row];
DetailController *nextController = [[DetailController alloc] initWithItem:theItem];
self.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:nextController animated:YES];
//
//[nextController setHidesBottomBarWhenPushed:YES];
self.hidesBottomBarWhenPushed=NO;
[nextController release];
}
También tuve este problema. Estaba configurando -hidesBottomBarWhenPused en el controlador de vista incorrecta.
Incorrecto (pero parece funcionar hasta que explotes):
self.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:self.anotherViewController animated:animated];
Derecha:
self.anotherViewController.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:self.anotherViewController animated:animated];
Además de hacer esto:
[self.navigationController popToRootViewControllerAnimated:YES];
Inicialmente cuando haces self.hidesBottomBarWhenPushed = YES;
viewControllerToBePushed.hidesBottomBarWhenPushed = YES;
cambiar para viewControllerToBePushed.hidesBottomBarWhenPushed = YES;
Eso debería hacer el trabajo!
En el controlador de vista que aparece después de que aparece el que tiene la barra de herramientas, prueba esta magia:
- (void)viewWillAppear:(BOOL)animated {
[self.navigationController setToolbarHidden:YES animated:YES];
}
Curioso, nunca establecí este valor, sino que lo anulé en ViewController que quiero:
- (BOOL) hidesBottomBarWhenPushed
{
return YES;
}
Si está utilizando un UINavigationController
y está buscando una forma de ocultar el TabBar (BottomBar) en un controlador de vista, coloque este código en el controlador de vista para el que desea ocultar el TabBar:
- (BOOL)hidesBottomBarWhenPushed {
return [self.navigationController.visibleViewController isEqual:self];
}
Otros enfoques que probé con solo configurar la propiedad provocaron que el TabBar se ocultara después de presionar un nuevo controlador de vista desde el controlador de vista con el TabBar oculto (incluso después de establecer la propiedad en NO).
rápido :
self.hidesBottomBarWhenPushed = true
self.performSegueWithIdentifier("viewcontroller_details", sender: nil)
self.hidesBottomBarWhenPushed = false
Swift 3: desde el código, debe establecer pushingController.hidesBottomBarWhenPushed en true.
Storyboard: selecciona el controlador que se está presionando, ve al inspector de atributos, selecciona la opción "Ocultar barra inferior al pulsar" en View Controller.