web-dev-qa-db-ja.com

ビューをプッシュするときにタブバーを非表示にする方法は?

私のアプリケーションはタブ付きアプリケーションであり、tabBarControllerの下にいくつかのコントローラーがあります。 1つのコントローラーはnavigationControllerであり、そのルートビューはテーブルビューです。テーブルビューの行をクリックすると、別のビューがプッシュされます。したがって、ビューがプッシュされたときに、下部のtabBarを非表示にするにはどうすればよいですか。さらに、プッシュされたビューに別のtabBarを追加したいので、UITabBarまたはUITabBarControllerを割り当てる必要がありますか?または別の方法がありますか?ありがとうございました!

25
wjldxt

tabBarControllerを非表示にするUIViewControllerクラスでこの方法を使用します

-(BOOL)hidesBottomBarWhenPushed
{
    return YES;
}

更新

@Yuchen Zhongの回答で示唆されているように、このオプションはストーリーボード自体で使用できるようになりました。

enter image description here

61
Bonnie

ストーリーボードでこれを今すぐ行うことができます:

  1. ストーリーボードでUIViewControllerを選択します
  2. チェックボックスを選択しますプッシュ時に下部バーを非表示にします

enter image description here

19
Yuchen Zhong

タブバーを非表示にする場合は、UIViewController.hidesBottomBarWhenPushed = YESを設定します。

...
nextViewController.hidesBottomBarWhenPushed = YES;
...
11
tuoxie007

HidesBottomBarWhenPushedメソッドは、途切れ途切れのアニメーションで下部のバーを非表示にすることがあります。

代わりに、viewDidLoadのタブバーを非表示にします。

self.tabBarController.tabBar.hidden = YES;

そしてviewWillDisappearでその存在を復元します

self.tabBarController.tabBar.hidden = NO;
4
Zack Zhu

非表示にするコントローラーにtruehidesBottomBarWhenPushedを設定します。

prepare for segueに配置されたすべてのコントローラーを非表示にします

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    segue.destination.hidesBottomBarWhenPushed = true
}
0
Haroldo Gondim