在 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