iOS TabbarViewController ocultar la barra de pestañas


Tengo un viewcontroller que implementa UITabBarViewController, y quiero ocultar la barra de pestañas y anularlo por mí mismo,

self.tabBar.hidden = YES;

La barra de pestañas desapareció, PERO hay un área en blanco(la azul) en la parte inferior de la vista. No quiero el área en blanco, ¿cómo puedo arreglar esto? Agradecer.

Editar: el área azul es:

self.view.backgroundColor = [UIColor blueColor];
Author: jxdwinter, 2013-03-08

4 answers

Hemos hecho exactamente lo mismo en nuestra aplicación. Para ocultar la barra de pestañas predeterminada, simplemente anule el método hidesBottomBarWhenPushed en su controlador de vista principal (o en cada controlador de vista en su aplicación)

#pragma mark - Overriden UIViewController methods
- (BOOL)hidesBottomBarWhenPushed {
    return YES;
}

EDITAR: Este valor también se puede establecer desde Storyboard:

introduzca la descripción de la imagen aquí

 65
Author: redent84,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-31 16:14:55

No creo que haya una manera fácil de arreglar esto porque UITabbarViewController es probablemente tu súper vista y todas las vistas "internas"' height = screenHeight - tabBarHeight - navBarHeight.

Tal vez usted puede tratar de cambiar el tamaño de su controlador de vista interna manualmente, pero entonces creo que podría tener problemas con el proceso de envío AppStore de Apple, porque creo que esto viola la experiencia general del usuario de iOS.

 1
Author: martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-08 14:27:59

Y así es como harías el override (UIViewController) en Swift:

override var hidesBottomBarWhenPushed: Bool {
    get { return true }
    set { super.hidesBottomBarWhenPushed = newValue }
}
 1
Author: Markus Rautopuro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-28 10:20:41

Mi UITabBarController se encuentra dentro de una vista de contenedor. Comprobar "Ocultar la barra inferior en el empuje" no funcionaba para mí. En su lugar, creé una subclase del controlador de la barra de pestañas y oculté la barra de pestañas mediante programación.

class FooTabBar: UITabBarController {
  override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    self.tabBar.isHidden = true
  }
}
 1
Author: Mark Suman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-24 22:33:36