2013-04-05 13 views
6

iosアプリケーションを開発し、そのアプリケーションでタブバーコントローラを使用しています。 そしてタブバーのコントローラから別のビューコントローラにナビゲートしています。 下部のタブバーを持つ別のビューコントローラに移動し、そのコントローラビューコントローラをポップした後に表示されるタブバー

viewController.hidesBottomBarWhenPushed = YES; 

とIMのプロパティを設定するビューコントローライムをプッシュする前に。

問題は、ビューコントローラーをビューコントローラーにポップして、そのビューにタブバーが表示される場合です。 ビューコントローラをポップするときにタブバーを非表示にする方法はありますか?

誰でもこれで私を助けることができれば素晴らしいだろう。

ありがとうございます。

+0

コードを表示する方法tabbarをどのように配置しましたか? –

答えて

3

この場合、viewWillAppearメソッドが便利です。あなたのfirstviewcontrollerにこのコードを

-(void)viewWillAppear:(BOOL)animated 
{ 
    self.tabBarController.tabBar.hidden = YES; 
} 

を入れsecondviewcontrollerが出popedときに、それは、このメソッドを呼び出しますし、あなたの下のバーが非表示になります。

+0

私はこれを試しましたが、ビューコントローラが実際にこの時点でプッシュされていないため、これは機能しません。このシナリオは、ユーザーが後ろをナビゲートするときです。 – era

+1

このメソッドは、ユーザーが別のビューをプッシュしたときではなく戻るときに呼び出されるので、 'viewController.hidesBottomBarWhenPushed = YES;'を2回宣言する必要があります。 'viewDidLoad'メソッドでは最初に、' viewWillAppear'メソッドでは2番目です。 – Dilip

+0

ビュー内の属性を設定しようとしましたが、ロードされました..しかし、まだタブバーがあります。 – era

0

置き、これを使用すると、バックボタン

[self.tabBarController.tabBar setHidden:YES]; [UIView animateWithDuration:0.5 animations:^{ self.tabBarController.tabBar.frame = CGRectMake(self.tabBarController.tabBar.frame.origin.x, self.tabBarController.tabBar.frame.origin.y+self.tabBarController.tabBar.frame.size.height, self.tabBarController.tabBar.frame.size.width, self.tabBarController.tabBar.frame.size.height); } 

をクリックしている私は別の答え...

先にすべてのViewControllerでこれらの2つの方法があり、BOOLを管理します変数はからYESNOです。

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    self.hidesBottomBarWhenPushed = YES; 
} 
- (void)viewDidDisappear:(BOOL)animated 
{ 
    self.hidesBottomBarWhenPushed = NO; 
} 
+0

私もこれを試しました。ことは、タブバーを非表示にすることができます、それは下部に空白を残します。私はビューフレームをフルスクリーンに設定しようとしましたが、動作しませんでした。 – era

+0

あなたが言ったように、まずfirstviewにはボトムバーがあり、それを押して右に隠れますか?あなたが必要としているものか何かが欠けている場合 –

+0

firstview(下のバーがある) - > secondview(下のバーが隠れている) - > thirdview(下のバーがある) それから私はポップしています3番目のビューと2番目のビューに戻るには、下部バーがそこにある..私はそれを取り除く必要があります。もし私が何をしたら、下に空いている場所を残すことを提案しています。 – era

0

あなたの要件ごとアプリの設計に依存、あなたはナビゲーションコントローラのデリゲートとして、中心オブジェクトを設定することができます。タブバーを隠す/表示する。この質問hidesBottomBarWhenPushed but when poppedも解決策を提供しますが、私は好きではありません。ちなみに、ユーザーが2番目またはそれ以上のレベルに移動したときに、下のバーを再度表示するのは一般的ではありません。

0

代わりに、2番目のビューコントローラをタブバーコントローラに表示できます。 2番目のView Controllerにナビゲーションバーが必要な場合は、新しいナビゲーションコントローラ内に配置できます。

このようにしても問題が解決しない場合は、ナビゲーションコントローラ内にカスタムタブバーコントローラを作成することができます。 2番目のビューコントローラをそのナビゲーションコントローラにプッシュできます。カスタムタブバーコントローラを作成するには、Apple Documentation on Creating Custom Container View Controllersを参照してください。私はそれがiOS 5以上でうまくいくと思います。

関連する問題