导航到另一个 UIViewController 后,UITabBarController 消失

Posted

技术标签:

【中文标题】导航到另一个 UIViewController 后,UITabBarController 消失【英文标题】:UITabBarController disappers after navigating to another UIViewController 【发布时间】:2017-08-08 13:14:38 【问题描述】:

显示TabBarController 是来自另一个UIViewController 的用户navigation

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
CategoryViewController *categoryViewController = [storyBoard instantiateViewControllerWithIdentifier:@"CategoryViewController"];
[self.tabBarController.navigationController pushViewController:categoryViewController animated:YES];

UITabBarController 导航到另一个UIViewController 类(即CategoryViewController)后,tabbarcontroller 消失了,我想显示UITabBarController,即使它导航到另一个controller

【问题讨论】:

为什么要推入标签栏控制器?您可以在所选视图的导航控制器中导航。 看起来您的UITabBarController 在您的UINavigationController 的视图层次结构中。如果您将push 另一个视图控制器放到堆栈上,当然它会将UITabBarController 推开。你要么让你的设计倒退,要么你需要展示你是如何建立你的层次结构的。 简单地使用 [self.navigationController pushViewController:categoryViewController animated:YES]; @Shubhambairagi 这将从底部删除tabbar 还有两个人错了吧? 【参考方案1】:

您正在将 Next 视图控制器推送到标签栏的位置

[self.tabBarController.navigationController pushViewController:categoryViewController animated:YES];

以上行将推送您的下一个视图控制器。

要解决此问题,您必须将当前视图控制器(显示在选定选项卡中)嵌入导航控制器并使用

[self.navigationController pushViewController:YOUR_VIEWCONTROLLER animated:YES];

【讨论】:

您需要了解navigationController 具有tabBar,因此请确保在发布之前测试您的代码! @AnuragSharma - 阅读代码上方的行。他正在推送到下一个视图控制器的当前视图控制器我告诉他嵌入导航控制器中。 所以 [self.navigationController ] 将引用导航控制器,其中当前视图控制器不是标签栏的导航控制器。 在投票或发表评论之前也要阅读说明。稍微动动脑筋。 反对的选民可以随意发表评论。答案有什么问题

以上是关于导航到另一个 UIViewController 后,UITabBarController 消失的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 NavigationController 的情况下从一个视图导航到另一个视图?

动态推送到 UIViewController

使用当前模态将数据从一个 uiviewcontroller 发送到另一个 navigationcontroller

在 IOS 中从视图导航到另一个视图时的默认时间是多少

从 UIAlertController 按钮单击导航到 ViewController

使用导航从一个片段导航到另一个片段后,防止后按工作