当我在基于标签的应用程序中从一个控制器导航到另一个控制器时,tabBar会被隐藏

时间:2014-01-06 12:44:55

标签: ios iphone ios5

如何从基于选项卡的应用程序导航任何控制器?我创建了一个导航viewController,并将tabBarController放入navigationController。

所以我的rootViewController是navigationController。

当我从我的主视图屏幕导航到基于选项卡的应用程序中的下一个viewController时,那时它成功导航但tabBar被隐藏

4 个答案:

答案 0 :(得分:0)

将导航控制器作为TabBar的Viewcontrollers。将必要的viewcontrollers(例如Home,Others)推入导航控制器。现在您可以在标签栏中获取导航

答案 1 :(得分:0)

根据您的问题,它显示正确。当您尝试从导航中推送另一个视图控制器时,最初导航控制器具有tab bar controller on top导航队列。它将show another view controller(它将推到队列顶部)这就是为什么,它会隐藏你的标签栏。(假设你将一个VC推送到另一个VC,导航控制器never show first VC's part

我的建议:您的标签栏控制器应该是根视图控制器,您必须将导航控制器作为标签栏控制器的子项。然后从中推出你的VC。它会显示您的tabbaritems。

你可以试试(根据你的版本)

LocationsVC * vc = [LocationsVC viewController];    
 UINavigationController * nav = [[UINavigationController alloc]initWithRootViewController:vc];
tabBarController.viewControllers = [NSArray arrayWithObjects:homeVC, nav,servicesVC,forumVC, nil];
self.window.rootViewController = tabBarController ;

然后以任何方法从LocationVC.m推送你的secondVC,

-(void)pushToNextScreen
{
    SecondVC *secondVc = //creation;
    [self.navigationController pushViewController:secondVc animated:YES];
}

答案 2 :(得分:0)

您构建视图层次结构的方式似乎不正确。

请检查。

应该是

 tabbarController 
        -> navigationController 
                   -> viewController

答案 3 :(得分:0)

使用如下所示的雇佣关系,

TabbarController --> UINavigationController --> UiViewController

tabbarController.viewControllers = array of UINavigationController;

然后使用所选标​​签的推送方法(选定的导航控制器)从一个控制器导航到另一个控制器