如何从TabbarController中查看控制器?

时间:2018-03-12 10:27:04

标签: ios swift uitabbarcontroller navigationcontroller

我有一个TabbarController,是我app的入口点。所以我希望将此TabbarController转换为ViewControllerA。我执行了performSegue(with: "identifier")。我可以访问ViewControllerA,但当我到达ViewControllerA时没有NavigationBar

我尝试将ViewControllerA嵌入到NavigationController 1st中,故事板看起来像这样

  

TabbarController-> NavigationController - > ViewControllerA

通过这个,我可以访问ViewControllerA。但是我在prepareForSegue方法中遇到问题。因为我需要在segue中包含一个值,现在似乎没有包含该值。

我在prepareForSegue中的代码如下所示:

if let VcA = segue.destination.navigationController?.topViewController as? ViewControllerA {
  VcA.postId = sender as! Int
}else{
   print("cant work")
}

我还尝试将tabbarController嵌入到NavigationController中,但在Xcode-> Editor -> Embed中该选项正在禁用。

所以我的问题是

如何从TabbarController转到ViewController,在目的地中,NavigationBar是可见的并且可以返回到前一个屏幕?

1 个答案:

答案 0 :(得分:0)

假设您的故事板看起来类似于:

enter image description here

这是因为您在performSegue(with: "identifier")中呼叫TabbarController,其直接连接到segue。您应该做什么,以便在连接到导航控制器(ViewControllerA)的第一个视图控制器中实现它。所以,它将是 - 例如 - 像这样:

class ViewControllerA: UIViewController {
    // ...

    override func viewDidLoad() {
        super.viewDidLoad()

        performSegue(with: "identifier")

    }

    // ...
}

因此,您的segue应该从ViewControllerA到所需的视图控制器。