首页 > 解决方案 > 如何关闭当前呈现控制器并使用导航控制器导航到其他控制器?

问题描述

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

标签: iosswiftpresentviewcontrollernavigationcontroller

解决方案


self.navigationController 只有在您的 ViewController 嵌入 UINavigationController 时才会有一个值,否则它将为零。在您的情况下,它为零,因此您的控制器已成功关闭,但未推送ViewController 。

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

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

推荐阅读