我正在使用这种类型的过渡到UIViewcontroller
:
self.navigationController?.popToViewController(MainVC(), animated: false)
结果我想接收带有所有子视图的 MainVC ......但我只收到没有任何子视图的空主视图。我做错了什么?
更新: 我已经过渡到 MainVC,但它是空的,只有初始视图,没有所有子视图。是什么原因?
我正在使用这种类型的过渡到UIViewcontroller
:
self.navigationController?.popToViewController(MainVC(), animated: false)
结果我想接收带有所有子视图的 MainVC ......但我只收到没有任何子视图的空主视图。我做错了什么?
更新: 我已经过渡到 MainVC,但它是空的,只有初始视图,没有所有子视图。是什么原因?
你应该通过对象MainVC()
像下面
let objOfMainVC = MainVC()
self.navigationController?.popToViewController(objOfMainVC, animated: false)
如果您正在使用情节提要,那么
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let main = storyBoard.instantiateViewController(withIdentifier: "MainVC") as! MainVC // set withIdentifier to your identifier that was set in your storyboard.
self.navigationController?.pushViewController(main, animated: false)
您需要MainVC
. 你不能只创建一个新的实例MainVC()
if let viewControllers = self.navigationController?.viewControllers {
for vc in viewControllers {
if let _ = vc as? MainVC {
self.navigationController?.popToViewController(vc, animated: true)
break
}
}
}
或者,如果您的 MainVC 是导航控制器的根视图控制器。
self.navigationController?.popToRootViewController(animated: true)