0

私はこの質問に対してさまざまなバリエーションを見つけましたが、私は私の仕事をするようには見えないので、それについていくらか明確にしたいと思っていました。サブビューでタブバーコントローラを非表示にする

私はいくつかのUIViewController(各タブ)を含むTabBarController(TBC)を持っています。これらUIViewController S(はmainMenu)の一つで、私はサブビューとして別のUIViewController(game1)を追加しようとしています:

[self.view addSubview:game1.view]; 

さて、これで問題は、それはそれでTBCを取るということですので、私はそれを隠してみました使用:

self.hidesBottomBarWhenPushed = YES; //< (In the game1.m ViewDidLoad method) 

game1.hidesBottomBarWhenPushed = YES; //< (In the mainMenu.m after I initialise game1) 

を私はaddSubviewのアプローチを使用していて、これは決して押されていないされているメニューによるものであることを推測していますか?

もともと私はpresentModalViewControllerアプローチを使用していたが、フレームが新しいビューに渡されている、ようにUIのレイアウトはズームイン/オフセットさせる。

を誰も私がこの問題を解決する手助けすることができ、私はできませんTBCを隠してしまい、アイデアがなくなっているようです。あなたはUINavigationControllerスタックにビューコントローラをプッシュしているときの高度で

おかげで、エリオット

答えて

0

hidesBottomBarWhenPushedにのみ関連します。 addSubview:で何をしているのかは、現在のビューコントローラのビューにgame1のビューを追加するだけです。それはまったく正しいことではなく、UIKitはそれをまったく処理しません。

そのあと、あなたのタブのビューコントローラとしてUINavigationControllerを置く必要があるようなものでgame1ビューコントローラをプッシュ:

[self.navigationController pushViewController:game1 animated:YES]; 

の代わりaddSubview:。それはhidesBottomBarWhenPushedで動作します。ただし、を、ではなく、game1のクラスのinitメソッドに設定するのが最善の方法です。

+0

タブ項目(mainMenuなど)に多数のUIViewControllerを持たせる代わりに、これらはNavigationControllersですか? –

+0

他のView Controllerをプッシュしたい場合は、それは通常の方法で行われます。必要に応じて実際のナビゲーションバーを「ホーム画面」に隠してから、ビューコントローラを押したときに表示するだけです。それはあなたが探しているもののようなものかもしれません。 – mattjgalloway

+0

ゆっくり返信して申し訳ありません、週末に家を移動!さて、助けてくれてありがとう、私は自分のコードを更新し、このフォーマットでそれを構造化して、私が望む効果を得ることができるかどうかを見極めます。私が文字通り望んでいたのは、TabBarなしで表示できるようにすることでした。なぜなら、ゲーム画面を表示するときに、ユーザーがメニューをナビゲートできるようにしたいからです。問題はタブバーにタブ以外のビューを押し込んだときの画面の大きさの変化のためにペン先のレイアウトが中央から外れて表示されていることでした。 –

関連する問題