从嵌套在 UITabBarController 中的导航控制器推送视图控制器?

Posted

技术标签:

【中文标题】从嵌套在 UITabBarController 中的导航控制器推送视图控制器?【英文标题】:Pushing a View Controller from a Navigation Controller nested in a UITabBarController? 【发布时间】:2011-08-30 19:03:26 【问题描述】:

正如标题所说,我有一个 UINavigationController 嵌套在 UITabBarController 中。当用户点击表格单元格时,我想推送一个视图控制器(它不显示 UITabBar)。这是您点击“正在播放”时 iPod 应用程序的行为。

如何做到这一点?

【问题讨论】:

【参考方案1】:

只需将其添加到您正在推送的视图控制器中即可。

- (BOOL)hidesBottomBarWhenPushed 
    return YES;

【讨论】:

太棒了!没想到会这么简单:)【参考方案2】:

例如:

    OrderViewController *controller = [[OrderViewController alloc] init];
    controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:controller animated:YES];
    [controller release];

或者尝试将self.tabBarController 的属性hidesBottomBarWhenPushed 设置为YES。

【讨论】:

【参考方案3】:

从 Xcode 中的 UITabBarController 项目开始,在控制器的每个选项卡视图中放置一个 UINavigationController,就完成了!希望有帮助!

【讨论】:

【参考方案4】:

我认为 hidesBottomBarWhenPushed 是要走的路。有一些问题要记住。您在要推送的 UIViewController 上设置此项,而不是在 tabBarController 或现有导航控制器上。

点击此处了解更多详情:Setting hidesBottomBarWhenPushed leaves bottom bar missing after View Controller is popped

从那篇文章中,一些示例代码:

self.anotherViewController.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:self.anotherViewController animated:animated];

【讨论】:

以上是关于从嵌套在 UITabBarController 中的导航控制器推送视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

swift UITabBarController 嵌套 UINavigationController

如何在这个嵌套流中正确访问 tabBarController?

使用嵌套 UINavigationController 和 UITabBarController 弹出视图控制器时,Xcode 9 / iOS 11“CALayer bounds contains N

我可以处理 UITabbarController 中的双击吗

直接从任何地方呈现深度嵌套的视图控制器,同时保留层次结构

如何正确访问此嵌套流中的tabBarController?