UITabbarViewControllerを実装するビューコントローラーがあり、タブバーを非表示にして自分でオーバーライドしたいのですが、
self.tabBar.hidden = YES;
タブバーは消えましたが、ビューの下部に空白の領域(青い領域)があります。空白領域が必要ないのですが、どうすれば修正できますか?ありがとうございました。
編集:青い領域は:
self.view.backgroundColor = [UIColor blueColor];
アプリケーションでもまったく同じです。デフォルトのTabBarを非表示にするには、親のビューコントローラー(またはアプリのすべてのビューコントローラー)でhidesBottomBarWhenPushed
メソッドをオーバーライドするだけです。
#pragma mark - Overriden UIViewController methods
- (BOOL)hidesBottomBarWhenPushed {
return YES;
}
編集:この値はストーリーボードからも設定できます:
UITabbarViewController
はおそらくスーパービューであり、すべての「内部」ビューの高さ= screenHeight - tabBarHeight - navBarHeight
であるため、これを修正する簡単な方法はないと思います。
内部ビューコントローラのサイズを手動で変更できるかもしれませんが、AppleのAppStore送信プロセスで問題が発生する可能性があります。これは、一般的なiOSユーザーエクスペリエンスに違反しているためです。
私のUITabBarController
はコンテナビュー内にあります。 「プッシュ時にボトムバーを隠す」をチェックしても機能しませんでした。代わりに、タブバーコントローラーのサブクラスを作成し、プログラムでタブバーを非表示にしました。
class FooTabBar: UITabBarController {
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
self.tabBar.isHidden = true
}
}
そして、これはSwiftでオーバーライド(UIViewController
)を行う方法です:
override var hidesBottomBarWhenPushed: Bool {
get { return true }
set { super.hidesBottomBarWhenPushed = newValue }
}