使用 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:
我有一个 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: