在 UITabBarController 中呈现一个新的 UIViewControler

Posted

技术标签:

【中文标题】在 UITabBarController 中呈现一个新的 UIViewControler【英文标题】:Presenting a new UIViewControler within a UITabBarController 【发布时间】:2016-07-17 20:10:59 【问题描述】:

我有一个带有 NavigationBar 的 UITabBarController。在 NavigationBar 中是一个按钮,它使用 UINavigationController 实例化一个新的 UIViewController:self.presentViewController(nav, animated: true, completion: nil) 并且正如我所料,视图会以全屏显示。

等等,我的问题是:如何在不隐藏/重叠我的 Tabbar 的情况下呈现新的 UIViewController?

【问题讨论】:

你可以试试这样的东西吗:self.tabBarController.selectedViewController.presentViewController(nav, animated: true, completion: nil) 谢谢,我试过了,但对我不起作用 【参考方案1】:

您应该确保在您呈现的视图控制器上设置了正确的modalPresentionStyle。也许.CurrentContext.OverCurrentContext。为此,您还应该在selectedViewController 上将definesPresentationContext 设置为true。在您的 UITabBarController 子类中:

nav.modalPresentationStyle = .CurrentContext
self.selectedViewController?.definesPresentationContext = true
self.selectedViewController?.presentViewController(nav, animated: true, completion: nil)

【讨论】:

以上是关于在 UITabBarController 中呈现一个新的 UIViewControler的主要内容,如果未能解决你的问题,请参考以下文章

在演示过程中尝试在 UITabBarController 上呈现 UIImagePickerController

在 indexpath.item 以编程方式呈现 UIViewController(嵌入在 UITabBarController 中)

以编程方式在 UITabBarController 和 UINavigationController 中呈现视图

在 UITabBarController 之前呈现登录视图控制器

2 ViewControllers 以模态方式呈现 UITabBarController

在呈现的 ViewController/NavigationController 上获取 UITabBarController