【问题标题】:navigating to viewcontroller inside tabbar issue - ios导航到 tabbar 问题中的 viewcontroller - ios
【发布时间】:2018-06-15 06:23:08
【问题描述】:

我有一个 tabviewcontroller 和相关的标签栏和视图控制器,如图所示。

我的问题是,当我尝试使用下面的代码导航到一些内部视图控制器时,它甚至无法正常工作,我也尝试了一些其他代码,一些代码可以正常导航但缺少 Tabbar。

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
                UITabBarController *tabbar = (UITabBarController *)[storyBoard instantiateViewControllerWithIdentifier:@"eventList"];
                self.window.rootViewController = tabbar;
                [self.window.rootViewController.navigationController pushViewController:tabbar animated:YES];

我对@9​​87654324@不太熟悉。

【问题讨论】:

  • 你是如何导航的?上面的代码只是启动了 TabBarController 并将其设置为 rootViewController 到窗口。最后一行什么也不做,只是将同一个 TabBarController 推送到 NavigationController。
  • 看看你的故事板配置,它让我困惑你想要实现什么。我认为您需要先对 UITabbarcontroller 进行一些研究。我可以在您的故事板中看到许多 UITabBarcontroller 实例,我想这不是必需的。只有一个 tabbarcontroller 就足够了,后面跟着 UINavigationController。

标签: ios objective-c uinavigationcontroller uitabbarcontroller tabbar


【解决方案1】:

改变,

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UITabBarController *tabbar = (UITabBarController *)[storyBoard instantiateViewControllerWithIdentifier:@"eventList"];
self.window.rootViewController = tabbar;
[self.window.rootViewController.navigationController pushViewController:tabbar animated:YES];

与,

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
NavigationControllerOfTabbar *navVC = (NavigationControllerOfTabbar *)[storyBoard instantiateViewControllerWithIdentifier:@"navVCStoryboardID"];
self.window.rootViewController = navVC;

问题,

  • 您需要了解UITabBarController 的工作原理:阅读this
  • 您需要了解 iOS 应用程序流/堆栈的工作原理,尤其是 UINavigationControllerUITabBarController
  • 在您的代码中,此行将为零:self.window.rootViewController.navigationController

解决方案,

  • 创建新的子类UINavigationController,并在情节提要中给出第一个视图控制器的名称。
  • 现在用给定的代码初始化它,它就可以工作了。

【讨论】:

    【解决方案2】:

    标签栏不需要导航控制器来操作。 我的建议是删除上面给出的所有代码,并确保您的故事板是您的目标中的主界面。标签栏应该自动工作。

    我注意到您有其他标签栏控制器作为主标签栏控制器的子级。也许它们是你学习过程的雏形,必须被删除。

    请确保您设置了正确的转场

    https://imgur.com/a/WvIrh

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多