我正在创建一个导航基础应用程序。我也需要显示一个标签栏。
我的mainWindow.xib包含:
UINavigationController
,UITabBarController
。 UITabBarController
有三个UINavigationController
。
在基于条件的算法上,我正在显示导航和TabBar。
它运作良好。当我想移动TabBar的任何内部视图时会出现问题:它在那里显示了navigationBar(我需要的东西),但它也显示了TabBar。我想删除所有内部视图的TabBar。当我隐藏tabbar时,它仍占据视图底部的空间。我试图重置View和Window的框架,但没有任何帮助。
如何隐藏tabBar并在我的视图中使用其空间?
我使用的逻辑是否正确?如果没有,请告诉我们如何纠正它。如果有教程那就更好了。
答案 0 :(得分:5)
你可以试试这个:
yourInnerViewController.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:yourInnerViewController animated:YES];
答案 1 :(得分:3)
答案是你不能并且试图强迫它会打破苹果的HIG,他们很可能会拒绝你的应用程序。
我解决这个问题的方法是使用[self presentModalViewController:animated:]
代替[self.navigationController pushViewController:animated:]
。
我知道它很烦人,但是标签栏控制器可以在应用程序的各个部分之间切换。因此,它提供了其中导航控制器上下文之外的功能,因此无法从其中一个导航控制器内部(正确)隐藏。