我的主视图控制器A有一个UITabbarViewController
,它有5个标签。
在viewcontroller A上,我为我的应用设置了[self.navigationController setNavigationBarHidden:YES]
。
在选项卡2的viewController上,我有一个表视图,我希望当我选择一行表时,我将呈现一个viewController B(同时还有navigationBar和tabbar)
[self.navigationController pushViewCOntroller:B animated:YES]
,但这不是工作。我认为因为为navigationBar设置了隐藏[self presentModalViewController:B]
,但它在viewcontroller B上工作,它显示全屏(navigationBar和tabbar消失)任何人都可以帮助我吗? 提前致谢
答案 0 :(得分:1)
怎么样
tabBarController
|
|
|-->Item1ViewController
|
|-->NavController->Item2ViewController->push->VCB
|
|-->Item3ViewController
|
确保tabBarController尚未包含在NavigationController中,这会引起混淆。
您可以选择通过设置各自的属性来显示/隐藏Item2ViewController和VCB上的导航栏。
如果使用故事板,您可以在使用菜单项“embed in ...”设置tabBarController后在NavContoller中嵌入Item2ViewController。
如果在代码中你可以做这样的事情:
UIViewController* vc1 = [[UIViewController alloc] init];
UIViewController* vc2 = [[UIViewController alloc] init];
UIViewController* vc3 = [[UIViewController alloc] init];
UIViewController* vc4 = [[UIViewController alloc] init];
UIViewController* vc5 = [[UIViewController alloc] init];
UINavigationController* navC =
[[UINavigationController alloc] initWithRootViewController:vc2];
NSArray* viewControllers = @[vc1,navC,vc3,vc4,vc5];
UITabBarController* tabC = [[UITabBarController alloc] init];
tabC.viewControllers = viewControllers;
[self presentViewController:tabC animated:YES completion:nil];
// don't do this:
// [self.view addSubview:tabC.view];
(“呈现”位有争议,它实际上取决于你的app结构的其余部分。)