我需要将标签栏位置更改为我的视图控制器顶部,我发现了如何做到这一点。问题是,现在在其中一个选项卡中我需要推送一个新的视图控制器,但是当我这样做时,导航栏不会显示。我尝试将新视图控制器嵌入到另一个导航控制器中并且它工作(显示导航栏)但它没有显示后退按钮项。有没有办法做到这一点?
这里有一些屏幕截图:
这就是我在标签之间导航的方式
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
switch (item.tag) {
case 1:
if (Home == nil) {
UIStoryboard* sb = [UIStoryboard storyboardWithName:@"Main"
bundle:nil];
Home = [sb instantiateViewControllerWithIdentifier:@"Home"];
}
[self.view insertSubview:Home.view belowSubview:mainTabBar];
break;
case 2:
if (Activity == nil) {
UIStoryboard* sb = [UIStoryboard storyboardWithName:@"Main"
bundle:nil];
Activity = [sb instantiateViewControllerWithIdentifier:@"Activity"];
}
[self.view insertSubview:Activity.view belowSubview:mainTabBar];
break;
case 3:
if (Discover == nil) {
UIStoryboard* sb = [UIStoryboard storyboardWithName:@"Main"
bundle:nil];
Discover = [sb instantiateViewControllerWithIdentifier:@"Discover"];
}
[self.view insertSubview:Discover.view belowSubview:mainTabBar];
break;
case 4:
if (Profile == nil) {
UIStoryboard* sb = [UIStoryboard storyboardWithName:@"Main"
bundle:nil];
Profile = [sb instantiateViewControllerWithIdentifier:@"Profile"];
}
[self.view insertSubview:Profile.view belowSubview:mainTabBar];
break;
default:
break;
}
这是我需要推送的视图控制器。
答案 0 :(得分:0)
而是在选择控制器时实例化控制器,您应该实例化并将它们添加到数组中,然后在设置窗口时在AppDelegate中执行此操作:
self.tabBarController.viewControllers = localViewControllersArray;
答案 1 :(得分:0)
以防任何人需要这个,我解决它的方法是让主视图控制器的所有选项卡视图控制器子项,以便它自己管理导航。
[self addChildViewController:self.Home];