【发布时间】:2017-12-17 14:13:15
【问题描述】:
好的,我有一个问题,我无法理解尝试从整个选项卡栏控制器 VC 呈现视图控制器(每次都相同的实例,就像其他选项卡项 VC)。我的标签栏控制器 VC 有 3 个视图控制器,它通过情节提要连接到,因此标签栏上出现了 3 个标签栏项目。当selectedIndex 更改时,这些视图控制器会出现在 Tab Bar Controller VC 的子视图下方。
这些应该始终在顶部的子视图是顶部的导航栏和底部的标签栏:
这对于这 3 个视图控制器来说非常有用。问题是我需要通过导航栏中的按钮访问未显示在标签栏按钮中的 ANOTHER 视图控制器的 1 个实例。
我的问题是不管怎么呈现,这个VC总是弹出到tab bar controller VC上面,覆盖tab bar和nav bar。
这里我确保只创建了 1 个实例:
if podcastVC == nil {
//print("IT IS NIL")
let storyboard = UIStoryboard(name: "Main", bundle: nil)
podcastVC = storyboard.instantiateViewController(withIdentifier: "podcast") as! PodcastViewController
//*NOTE: have to set other vars too, this is temp
podcastVC.urlStr = currentTrackUrl!
podcastVC.originalUrl = currentTrackUrl!
AudioPlayerManager.shared.play(urlString: podcastVC.urlStr)
}
self.show(podcastVC, sender: self)
podcastVC.modalPresentationStyle = .currentContext
podcastVC.definesPresentationContext = false
[1]: https://i.stack.imgur.com/1d6MZ.png
如Swift: How to return to the same instance of my UIViewController所示
如何使该 VC 出现在与标签栏项目相同的上下文中?我尝试将导航栏的图层设置为更高的 z 位置(如 10),但没有任何效果。怎么了?
【问题讨论】:
-
呈现的
ViewController覆盖了整个屏幕。 -
好吧。那么如何在不覆盖屏幕的相同上下文中显示它呢?
-
您是否尝试使用
show而不是present。它只是工作 -
你在说什么看上面我正在使用的节目,它把它呈现在所有东西上
-
糟糕!据我了解,您想从您的
TabBarController的viewControllers中呈现实例化的ViewController,对吗?
标签: ios swift swift3 uiviewcontroller uitabbarcontroller