我有一个 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 。
最佳答案
在将 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/