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

标签 ios objective-c uiviewcontroller uinavigationcontroller uitabbarcontroller

我有一个 Tabbarcontroller,里面有 5 个 View Controller 和导航 Controller ,就像我在这里所做的那样:

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

现在的问题是,按 Tabbar 上的按钮可以轻松访问每个 ViewController,我可以在其中呈现 Xib 文件等。

但现在我想要一个导航 Controller ,当按下选项卡栏上的按钮时会显示该 Controller 。这个Navigationcontroller本身有几个Viewcontroller。

我尝试在我的导航 Controller 中呈现我的第一个 View Controller (此代码来自 Navigationcontroller.m):

- (void)viewDidLoad {
[super viewDidLoad];

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

这预期不起作用并给了我:应用程序试图以模态方式呈现事件 Controller 。

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

编辑:这就是我在 Storyboard中设置它的方式。在我的编程方法中,未显示第一个 View Controller 。

enter image description here

最佳答案

在将 NavigationController 添加到选项卡栏时,不要将 VC5 View Controller 作为 subview Controller 添加到 NavigationController(除非它是一个 subview ?),而是将其添加为 Root View Controller 。

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

[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 :

关于ios - 使用 Navigationcontroller 在 Tabbarcontroller 中构建层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35775763/

相关文章:

ios - 将 TapGestureRecognizer 添加到除 UICollectionView 单元格之外的整个 View

ios - Swift 二维数组最小值

android - Flutter-如何仅在 ListView 中显示选定的项目

iphone - 单例实现从服务器读/写

iOS 在关闭 View Controller 后释放内存

iphone - 什么会导致 iPhone 主屏幕在模态翻转转换后可见?

objective-c - touches 在 UIView 与 UIViewControllers 中的触摸事件处理

ios - 在 UIView 容器中添加 bezierpath

ios - 从 UIWebview 应用程序崩溃创建 pdf 时

iOS 7 套接字连接被拒绝错误 61