首页 > 解决方案 > 从一个控制器导航到另一个控制器,它们之间有一个根控制器

问题描述

我有 3 个控制器:RootController、FirstController 和 SecondController。我想从 RootController -> FirstController 导航(这里我按下一个按钮) -> 带我到 SecondController。我如何在没有通知和观察者的情况下执行此操作,并且无需创建从该按钮到 SecondVC 的 segue,因为在我需要按 < Back 并再次按 < Back 之后。

这是我试图做但没有工作的:

import UIKit

class FirstViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }


    @IBAction func goToSecondVC(_ sender: UIButton) {

        // Go from first VC to second VC

        let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
        let showSecondVC = storyBoard.instantiateViewController(withIdentifier: "goSecondVC") as! SecondViewController
        self.present(showSecondVC, animated:true, completion:nil)
    }


}

在此处输入图像描述

标签: swift

解决方案


为了使您的代码示例正常工作,您的 SecondViewController 需要将 Storyboard ID 设置为“goSecondVC”。这是在右窗格第三个选项卡中的身份检查器中完成的。这将以模态方式显示您的 ViewController。但是,由于您有一个 navigationController,您很可能希望将 SecondViewController 推送到 navigationStack 上,如下所示:

navigationController?.pushViewController(secondVC, animated: true)

推荐阅读