如何从基于选项卡的应用程序导航任何控制器?我创建了一个导航viewController,并将tabBarController放入navigationController。
所以我的rootViewController是navigationController。
当我从我的主视图屏幕导航到基于选项卡的应用程序中的下一个viewController时,那时它成功导航但tabBar被隐藏
答案 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;
然后使用所选标签的推送方法(选定的导航控制器)从一个控制器导航到另一个控制器