Подтвердить что ты не робот

IOS TabbarViewController скрывает панель вкладок

У меня есть viewcontroller, который реализует UITabbarViewController, и я хочу скрыть панель вкладок и переопределить ее самостоятельно,

self.tabBar.hidden = YES;

панель вкладок исчезла, но в нижней части окна есть пустая область (синяя). Я не хочу пустую область, как я могу это исправить? Спасибо.

: синяя область:

self.view.backgroundColor = [UIColor blueColor];
4b9b3361

Ответ 1

Мы сделали то же самое в нашем приложении. Чтобы скрыть TabBar по умолчанию, просто переопределите метод hidesBottomBarWhenPushed в родительском контроллере представления (или на каждом контроллере представления в вашем приложении)

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

EDIT: это значение также можно установить из раскадровки:

enter image description here

Ответ 2

Я не думаю, что есть простой способ исправить это, потому что UITabbarViewController - это, вероятно, ваш супер-просмотр и все "внутренние" представления height = screenHeight - tabBarHeight - navBarHeight.

Возможно, вы можете попытаться изменить размер внутреннего контроллера внутреннего вида вручную, но я думаю, что у вас могут возникнуть проблемы с процессом подачи приложений Apple AppStore, потому что я считаю, что это нарушает общий пользовательский интерфейс iOS.

Ответ 3

И вот как вы делаете переопределение (UIViewController) в Swift:

override var hidesBottomBarWhenPushed: Bool {
    get { return true }
    set { super.hidesBottomBarWhenPushed = newValue }
}

Ответ 4

My UITabBarController размещается внутри контейнера. Проверка "Hide Bottom Bar on Push" для меня не работала. Вместо этого я создал подкласс контроллера панели вкладок и программно скрыл панель вкладок.

class FooTabBar: UITabBarController {
  override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    self.tabBar.isHidden = true
  }
}