0

我正在尝试制作一个基于导航的应用程序,UIViewController在导航堆栈中包含三个。我有一个底栏 ( UITabBar)。

我想在第一个UIViewController被推入堆栈时隐藏标签栏,我想在第二个UIVIewController被推入时显示标签栏。

这是我为此编写的代码。

首先UIVIewController

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

其次UIViewController,我做了:

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

现在的问题是,我可以为第一个 UIViewController 隐藏 UITabBar,但第二个它也被隐藏了。

我该如何解决这个问题?

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 回答