Swift:在与其他视图控制器相同的上下文中显示视图控制器?

时间:2017-07-13 00:47:47

标签: ios swift swift3 uiviewcontroller uitabbarcontroller

好的,我有一个问题,我无法理解尝试从整个标签栏控制器VC呈现一个视图控制器(每次都是相同的实例,就像其他标签项VC一样)。我的标签栏控制器VC有3个视图控制器,它通过故事板连接到,因此标签栏上显示3个标签栏项目。更改selectedIndex后,这些视图控制器就会出现在Tab Bar Controller VC的子视图下方。

这些应始终位于顶部的子视图是顶部的导航栏和底部的标签栏:

enter image description here

这对于那些3个视图控制器来说非常棒。问题是我需要通过导航栏中的按钮访问标签栏按钮中未显示的另一个ANOTHER视图控制器实例。

我的问题是无论我如何呈现它,这个VC总是弹出标签栏控制器VC,覆盖标签栏和导航栏。

这里我确保只有一个实例:

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),但没有任何作用。有什么问题?

1 个答案:

答案 0 :(得分:0)

模态视图: 可以适用于所有视图控制器 超过所有其他视图,需要以编程方式弹出(例如手动添加按钮)

推送视图: 仅适用于导航控制器 在navigationController中自动添加一个后退按钮

你应该推VC并保持tabbar和nav 你可以改变莫代尔现在的风格