在navcontroller中的tabbarcontroller上面显示顶部viewcontroller

时间:2014-07-07 13:00:53

标签: ios uinavigationcontroller uitabbarcontroller presentviewcontroller

我有关于viewcontroller堆叠的设置问题。 我有一个带有tabbar控制器的应用程序。每个标签页都需要一个导航栏,由每个标签中的导航控制器和内容提供。没问题。 但是,我需要在选项卡上方的选项卡上方显示一个viewcontroller。 我不能在tabbarcontroller(不是navcon)上使用presentviewcontroler而且我无法使用tabcon内的navcons,因为标签会位于顶部。

所以我把一个navcon作为主容器,我将tabbarcon放在其中。 现在提供的viewcon是最重要的,但唯一剩下的问题是,主容器navcon的导航栏覆盖了tabbarcon的navcons中的导航栏,我需要最顶层viewcon上的标题,它位于所有内容之上。

除了在所有内容上提供视图控制器之外,还有人打开和关闭主容器navcon的导航栏,有没有人为此做出更明智的解决方案?

1 个答案:

答案 0 :(得分:0)

我在AppDelegate中定义了一个属性

@property (strong, nonatomic) UINavigationController* rootNavController;

我可以使用委托对象方法(如

)在TabBar上显示viewController
        self.navController = nil;

        LGLoginViewController* loginView = [[LGLoginViewController alloc] initWithNibName:@"LGLoginViewController"bundle:nil];

        if (!self.navController) {
            self.navController = [[UINavigationController alloc] initWithRootViewController:loginView];
        } else {
            [self.navController initWithRootViewController:loginView];
        }

        self.navController.delegate = self;
        [self.window.rootViewController presentModalViewController:self.navController animated:NO];

以后我关闭控制器