在工具栏/标签栏之间交替

时间:2013-11-28 12:05:16

标签: ios uitabbar uitoolbar

我的应用程序结构如下:UITabBarController> UINavigationController> ViewControllerOne> ViewControllerTwo。 UINavigationBar底部是标签栏,现在当用户导航到第二个视图控制器时,我希望能够隐藏标签栏并用工具栏替换。我试过这段代码:

[self.navigationController.tabBarController.tabBar setHidden:YES];
[self.navigationController.toolbar setHidden:NO];

当我运行应用程序时,标签栏被隐藏但工具栏不会出现。另外,由于最后一个VC是一个表视图控制器,当我滚动单元格时,表格和视图底部之间有一个白色间隙。我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:10)

这是行不通的,因为当您隐藏标签栏时,子视图将无法正确调整(这就是您获得空白区域的原因)。你必须使用

self.hidesBottomBarWhenPushed = YES;

在你的init方法或awakeFromNib中......然后是

[self.navigationController setToolbarHidden:NO animated:YES];

例如在viewDidLoad中。

这样,当隐藏标签栏时,标签栏控制器的视图将正确布局它的子视图。只记得调用self.hidesBottomBarWhenPushed = NO;在第一个视图控制器中,当从导航堆栈弹出第二个视图控制器时,标签栏仍然会被隐藏。

答案 1 :(得分:0)

尝试使用适当的框架分配工具栏并将其添加到self.tabBarController.view