Ios 如何导航navigationcontroller RootViewControlr子视图控制器

Ios 如何导航navigationcontroller RootViewControlr子视图控制器,ios,uinavigationcontroller,uitabbarcontroller,Ios,Uinavigationcontroller,Uitabbarcontroller,在我的应用程序中,我提到了带有两个选项卡tab1和tab2的选项卡栏控制器。每个选项卡都有带有根视图控制器的导航视图控制器。我的场景如下所示 选项卡1->viewcontroller1(导航控制器根ViewController)->viewcontroller2 所以现在我想直接从app delegate移动到view controller2。这怎么可能呢 我做了一个像这样的应用程序内代理。但它正在移动到viewcontroller1 UIStoryboard *mainStoryboard =

在我的应用程序中,我提到了带有两个选项卡tab1和tab2的选项卡栏控制器。每个选项卡都有带有根视图控制器的导航视图控制器。我的场景如下所示

选项卡1->viewcontroller1(导航控制器根ViewController)->viewcontroller2

所以现在我想直接从app delegate移动到view controller2。这怎么可能呢

我做了一个像这样的应用程序内代理。但它正在移动到viewcontroller1

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main"
                                                         bundle: nil];
self.tabbarController = [mainStoryboard instantiateViewControllerWithIdentifier:@"tabbarcontroller"];
[self.tabbarController setSelectedIndex:1];
 viewcontroller2 *view =(viewcontroller2 *) [mainStoryboard instantiateViewControllerWithIdentifier:@"view2"];

[self.tabbarController.navigationController pushViewController:view animated:YES];
self.window.rootViewController=self.tabbarController;
我曾多次使用这种方法

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main"
                                                         bundle: nil];
self.tabbarController = [mainStoryboard instantiateViewControllerWithIdentifier:@"tabbarcontroller"];
[self.tabbarController setSelectedIndex:1];
viewcontroller1 *view1 =(viewcontroller1 *) [mainStoryboard instantiateViewContro1llerWithIdentifier:@"view1"];
viewcontroller2 *view2 =(viewcontroller2 *) [mainStoryboard instantiateViewControllerWithIdentifier:@"view2"];

[self.tabbarController.navigationController pushViewController:view1 animated:NO];
[self.tabbarController.navigationController pushViewController:view2 animated:YES];

self.window.rootViewController=self.tabbarController;

能否将viewcontroller2作为navigationController的俯视图?在appDelegate-->中,是否使用选项write:Splash*vc2=[[Splash alloc]initWithNibName:@“Splash”bundle:nil]完成了漫游;self.navigationController=[[UINavigationController alloc]initWithRootViewController:vc2];setSelectedIndex:2我想它会移到第二个视图控制器您的选项卡栏控制器没有导航控制器,self.tabbarController.navigationController是nil.self.tabbarController.navigationController是只读的。我也对viewcontroller2做了同样的事情。它对u有效吗?我需要直接从appdelegate移动到viewcontroller 2。是的,但我的代码和你的代码有一点不同,我先按了viewController1,然后按了2。我也试着像u一样,但它显示了viewController1。我想直接显示ViewController2。添加控制器后检查self.tabbarController.navigationController.viewControllers值。我在情节提要中这样做了。一旦我们选择了选项卡,然后将显示viewcontroller1。如果我单击viewcontroller1上的任何按钮,则viewcontroller2将显示。但现在我想在选择选项卡时显示viewcontroller2。
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main"
                                                         bundle: nil];
self.tabbarController = [mainStoryboard instantiateViewControllerWithIdentifier:@"tabbarcontroller"];
[self.tabbarController setSelectedIndex:1];
viewcontroller1 *view1 =(viewcontroller1 *) [mainStoryboard instantiateViewContro1llerWithIdentifier:@"view1"];
viewcontroller2 *view2 =(viewcontroller2 *) [mainStoryboard instantiateViewControllerWithIdentifier:@"view2"];

[self.tabbarController.navigationController pushViewController:view1 animated:NO];
[self.tabbarController.navigationController pushViewController:view2 animated:YES];

self.window.rootViewController=self.tabbarController;