如何关闭当前的演示控制器并使用导航控制器导航到其他控制器?

时间:2019-10-09 11:49:02

标签: ios swift presentviewcontroller navigationcontroller

self.dismiss(animated: false) {
  let vc = self.storyboard?.instantiateViewController(withIdentifier: "ViewController") as! ViewController
  self.navigationController?.pushViewController(vc, animated: false)
}

1 个答案:

答案 0 :(得分:0)

self.navigationController仅在ViewController嵌入在UINavigationController中时才具有值,否则为nil。 在您的情况下为nil,因此您的控制器已成功关闭,但未推送 ViewController

在完成块中,使用 self.presentingViewController 推送对象。

self.dismiss(animated: false) {
  let vc = self.storyboard?.instantiateViewController(withIdentifier: "ViewController") as! ViewController
  self.presentingViewController?.navigationController?.pushViewController(vc, animated: false)
}