【问题标题】:How to navigate the navigationcontroller rootviewcontrollr subview controller如何导航 navigationcontroller rootviewcontrollr 子视图控制器
【发布时间】:2015-04-08 04:16:04
【问题描述】:

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

tab1 -> viewcontroller1 (navigationcontroller rootviewcontroller) -> viewcontroller2.

所以现在我想直接从应用程序委托移动到视图控制器2。这怎么可能。

我在应用程序委托中这样做了。但它正在移动到 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;

【问题讨论】:

  • 你能把viewcontroller2推到navigationController的顶视图吗?
  • in 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 是只读的。

标签: ios uinavigationcontroller uitabbarcontroller


【解决方案1】:
Tab1 -> Viewcontroller1(navigationcontroller rootviewcontroller) -> 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;

【讨论】:

  • 我也对 viewcontroller2 做了同样的事情。它对你有用吗?我需要直接从 appdelegate 转移到 viewcontroller 2。
  • 是的,但是我的和你的代码有一点点不同,我先推了viewController1,然后推了2。
  • 我也像你一样尝试过,但它显示 viewcontroller1。直接我想显示 viewcontroller 2。
  • 添加控制器后检查 self.tabbarController.navigationController.viewControllers 的值..
  • 我在storyboard中做了那个标签。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多