0

これは私が使用しているアプローチです:

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [self.tabBarController hideTabBar];
}

-(void) viewWillDisappear:(BOOL)animated
{
    [self.tabBarController showTabBar];
    [super viewWillDisappear:animated];
}

このアプローチでは、ナビゲーション スタックに何かを追加すると、UITabBar が再び表示されます。

ユーザーが別のタブに移動するか戻るボタンを押したときにのみ UITabBar を表示したい場合はどうすればよいので、viewWillDisappear のすべてのケースではありませんか?

ナビゲーションスタックの上に UIViewController をプッシュしても、それは変わらないはずです

4

3 に答える 3

4

NSNotification も使用できるため、タブバーを非表示にする必要があるときはいつでも。その時点で、タブバーを表示/非表示にする通知を起動します。

NSNotification の利点は、アプリケーションのライフサイクル全体でそれを起動できることです。これは、ビュー コントローラーやクラスに固有のものではありません。クラス/ビューコントローラーから独立して使用できます。

これがあなたが探しているものであることを願っています。

よろしく、 ムルナル

于 2013-01-16T10:40:11.293 に答える
3

ビューで次のことを行うと、メソッドが表示されます

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.navigationController.tabBarController.tabBarController.tabBar.hidden=TRUE;
}

これにより、特定のコントローラーからタブバーが削除されます。ナビゲーション スタックは変更されません。

于 2013-01-16T04:08:45.180 に答える
0

これは私がしたことです

viewDidDisappear で、self.navigationController が空かどうかを確認します。空の場合は、ビューがナビゲーション コントローラーからポップされていることがわかります。これは、そのビューをウィンドウ階層から取得する唯一の方法です。

于 2013-01-16T06:45:30.357 に答える