swift - 从一个控制器导航到另一个控制器,它们之间有一个根控制器
问题描述
我有 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)
}
}
解决方案
为了使您的代码示例正常工作,您的 SecondViewController 需要将 Storyboard ID 设置为“goSecondVC”。这是在右窗格第三个选项卡中的身份检查器中完成的。这将以模态方式显示您的 ViewController。但是,由于您有一个 navigationController,您很可能希望将 SecondViewController 推送到 navigationStack 上,如下所示:
navigationController?.pushViewController(secondVC, animated: true)