导航控制器没有推新窗口

时间:2014-12-17 14:28:24

标签: ios objective-c iphone uinavigationcontroller uitabbarcontroller

我需要将标签栏位置更改为我的视图控制器顶部,我发现了如何做到这一点。问题是,现在在其中一个选项卡中我需要推送一个新的视图控制器,但是当我这样做时,导航栏不会显示。我尝试将新视图控制器嵌入到另一个导航控制器中并且它工作(显示导航栏)但它没有显示后退按钮项。有没有办法做到这一点?

这里有一些屏幕截图:

This is the new tabbar controller inside a navigation controller

这就是我在标签之间导航的方式

- (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;
}

这是我需要推送的视图控制器。

Profile is one of the tabs and history, following and followers the new view controllers

2 个答案:

答案 0 :(得分:0)

而是在选择控制器时实例化控制器,您应该实例化并将它们添加到数组中,然后在设置窗口时在AppDelegate中执行此操作: self.tabBarController.viewControllers = localViewControllersArray;

答案 1 :(得分:0)

以防任何人需要这个,我解决它的方法是让主视图控制器的所有选项卡视图控制器子项,以便它自己管理导航。

[self addChildViewController:self.Home];