0

UIViewControllerナビゲーションスタックに3つあるナビゲーションベースのアプリケーションを作成しようとしています。ボトムバー(UITabBar)があります。

最初UIViewControllerにスタックにプッシュされたときにタブバーを非表示にし、2番目にプッシュされたときにタブバーを表示したいUIVIewController

これが私がそうするために書いたコードです。

最初にUIVIewController

NotificationDetailsVC *obj = [[NotificationDetailsVC alloc] init];
obj.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:obj animated:YES];
[obj release];

2番目UIViewControllerに私はしました:

NotificationBO *obj=[self.notificationsArray objectAtIndex:indexPath.row];
object.hidesBottomBarWhenPushed = NO;
[self.navigationController pushViewController:object animated:YES];
[object release];

ここで問題となるのは、最初のUIViewControllerに対してUITabBarを非表示にすることができますが、2番目のUIViewControllerも非表示にすることです。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

メソッドを使用する代わりにhidesBottomBarWhenPushed。次のように、タブバーを非表示にするコードを試してください。ViewController

[self.tabBarController.tabBar setHidden:YES];

タブバーを表示するため

[self.tabBarController.tabBar setHidden:NO];

上記のものは機能しますが、問題は下部に空きスペースが残ることです。viewControllerこれを克服するには、に設定frameしますtabbarController

非表示の場合は、

[self.tabBarController.tabBar setFrame:CGRectMake(0, 480, 320, 50)]

表示する場合は、

[self.tabBarController.tabBar setFrame:CGRectMake(0, 430, 320, 50)]
于 2013-01-07T12:42:43.723 に答える