使用 Navigationcontroller 在 Tabbarcontroller 中构建层次结构

Build Hierarchy in Tabbarcontroller with Navigationcontroller

我有一个 Tabbarcontroller,里面装满了 5 个 Viewcontrollers 和 Navigationcontroller,就像我在这里所做的那样:

[self addChildViewController:VC1];
[self addChildViewController:NavigationController;
[self addChildViewController:VC2];
[self addChildViewController:VC3];
[self addChildViewController:VC4];

现在的问题是,按下我的 Tabbar 上的一个按钮可以让我轻松地访问每个 ViewController,我可以在其中显示 Xib 文件等

但现在我想要一个 Navigationcontroller,它会在我的 Tabbar 上按下一个按钮时显示。这个 Navigationcontroller 本身有几个 Viewcontrollers.

我尝试在我的 Navigationcontroller 中展示我的第一个 Viewcontroller(此代码来自 Navigationcontroller.m):

- (void)viewDidLoad {
[super viewDidLoad];

[self addChildViewController:VC5];
[self presentViewController:VC5];

}

这预期不起作用并给了我:应用程序试图以模态方式呈现活动控制器。

有什么好的方法可以实现这样一个具体的目标吗?我正在努力解决这个问题。提前致谢!

编辑:这就是我在故事板中设置它的方式。在我的编程方法中,第一个视图控制器没有显示。

在将 NavigationController 添加到选项卡栏时,不要将 VC5 视图控制器作为子视图控制器添加到 NavigationController(除非它是一个子视图?)。

例如在您的标签栏代码中:

[self addChildViewController:VC1];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:VC5]; 
[self addChildViewController:navigationController];
[self addChildViewController:VC2];
[self addChildViewController:VC3];
[self addChildViewController:VC4];

有关 UINavigationController 的 Apple 文档位于:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/#//apple_ref/occ/instm/UINavigationController/initWithRootViewController: