我有一个Tabbarcontroller,里面装满了5个Viewcontrollers和Navigationcontrollers,就像我在这里做的那样:
[self addChildViewController:VC1];
[self addChildViewController:NavigationController;
[self addChildViewController:VC2];
[self addChildViewController:VC3];
[self addChildViewController:VC4];
现在的问题是,按Tabbar上的按钮可以轻松地将我带到每个ViewController,在那里我可以呈现Xib-Files等。
但现在我想要一个Navigationcontroller,按下Tabbar上的按钮就会显示。这个Navigationcontroller本身有几个Viewcontrollers。
我试着在我的Navigationcontroller中展示我的第一个Viewcontroller(这段代码来自Navigationcontroller.m):
- (void)viewDidLoad {
[super viewDidLoad];
[self addChildViewController:VC5];
[self presentViewController:VC5];
}
这预计不起作用并且给了我:应用程序试图以模态方式呈现一个活动控制器。
是否有实现这一特定目标的好方法?我正在努力解决这个问题。提前谢谢!
编辑:这是我在故事板中设置的方式。在我的编程方法中,未显示第一个视图控制器。
答案 0 :(得分:1)
当您将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: