代码之家  ›  专栏  ›  技术社区  ›  ken

如何从TabbarController切换到view controller?

  •  1
  • ken  · 技术社区  · 6 年前

    我有一个 TabbarController with是我的应用程序的入口点。所以我想继续 TabbarController ViewControllerA 。我执行 performSegue(with: "identifier") 。我可以到达 ViewControllerA视图控制器 ,但当我到达 ViewControllerA视图控制器 没有 NavigationBar

    我试图嵌入 ViewControllerA视图控制器 变成一个 NavigationController 第一,故事板是这样的

    TabbarController->导航控制器->ViewControllerA视图控制器

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

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

    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,并且在目的地中导航栏可见并可以返回到上一个屏幕?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Ahmad F    6 年前

    假设您的故事板类似于:

    enter image description here

    那是因为你在打电话 performSegue(with: "identifier") TabbarController 是的 直接连接到segue。如何在连接到导航控制器的第一个视图控制器中实现它( ViewControllerA )。例如,它是这样的:

    class ViewControllerA: UIViewController {
        // ...
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            performSegue(with: "identifier")
    
        }
    
        // ...
    }
    

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