隐藏Tabbar仍然占据空间?

时间:2011-03-28 13:57:47

标签: iphone uinavigationcontroller uitabbarcontroller

我正在创建一个导航基础应用程序。我也需要显示一个标签栏。

我的mainWindow.xib包含:

  • UINavigationController
  • UITabBarController

UITabBarController有三个UINavigationController

在基于条件的算法上,我正在显示导航和TabBar。

它运作良好。当我想移动TabBar的任何内部视图时会出现问题:它在那里显示了navigationBar(我需要的东西),但它也显示了TabBar。我想删除所有内部视图的TabBar。当我隐藏tabbar时,它仍占据视图底部的空间。我试图重置View和Window的框架,但没有任何帮助。

如何隐藏tabBar并在我的视图中使用其空间?

我使用的逻辑是否正确?如果没有,请告诉我们如何纠正它。如果有教程那就更好了。

2 个答案:

答案 0 :(得分:5)

你可以试试这个:

yourInnerViewController.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:yourInnerViewController animated:YES];

答案 1 :(得分:3)

答案是你不能并且试图强迫它会打破苹果的HIG,他们很可能会拒绝你的应用程序。

我解决这个问题的方法是使用[self presentModalViewController:animated:]代替[self.navigationController pushViewController:animated:]

我知道它很烦人,但是标签栏控制器可以在应用程序的各个部分之间切换。因此,它提供了其中导航控制器上下文之外的功能,因此无法从其中一个导航控制器内部(正确)隐藏。