将本地tabBar放在全局tabBar上(我有一个全局tabBarController)

时间:2012-01-12 07:57:19

标签: iphone objective-c

我在iphone应用程序中放了一个全局tabBarController,我一直在努力。 但是在我的一个屏幕中,我需要放置与全局tabBarController不同的本地tabBar。

我有两种方式: 1)通过self.tabBarController.tabBar.hidden = yes隐藏全局tabBar;并在视图中放置本地tabBar代替它。但是tabBar的框架显示为空白。 2)通过添加本地tabBar作为全局tabBar的子视图尝试但是在屏幕被卸载之后它通过应用[localTabBar removeFromSuperView]来删除本地tabBar;

提前致谢..

Global tabBarController:
tabBarController          = [[UITabBarController alloc] init];
tabBarController.viewControllers = [NSArray    arrayWithObjects:ActivityTabnav,nav2,privateChatnav,ExploreTabnav,nav3,tempTabnav, nil];

localtabBar是viewController视图xib上的tabBar。 在vIewDidLoad>

 UIWindow* window = [[UIApplication sharedApplication] keyWindow];
 [window addSubview:self.tabBar];

in vIewDidUnLoad>

[self.tabBar removeFromSuperview];

以前我尝试将self.tabBar添加到self.tabBarController.tabBar作为subView,它在其他屏幕中保存了本地self.tabBar。

谢谢...

2 个答案:

答案 0 :(得分:1)

我发现这样做最干净的方法是设置视图控制器的hidesBottomBarWhenPushed属性,然后将其放在UINavigationController内(如果不需要,则隐藏navigiationBar) 。这将隐藏UITabBarController's UITabBar,而不会留下空格。

然后,您可以将本地UITabBar直接放入UIViewController's视图;

另一种可能性是隐藏UITabBarController's UITabBar,然后将本地UITabBar添加为UITabBarController's视图的子视图。当然,你需要在需要时从superview中删除。

答案 1 :(得分:0)

一种方法是在Window上添加TabBar。但请确保您处理正确。您可以通过获取当前窗口对象在窗口上添加它,然后将TabBar添加到它上面......如下所示......

UIWindow* window = [[UIApplication sharedApplication] keyWindow];
[window addSubview:tabbar];

这可能是一个选择,但要小心处理......