所以我有一个视图控制器,我显示如下:
func showProfileForTrainer(trainer: Trainers) {
let viewPTProfileVC = ViewPTProfileVC()
viewPTProfileVC.trainer = trainer
self.navigationController?.pushViewController(viewPTProfileVC, animated: true)
}
但是当试图解雇视图时,我无法让它发挥作用。它在导航栏中有一个后退按钮,功能很好,但是当试图通过按钮关闭视图时,它什么都不做。我目前已经尝试过:
func handleMessageTrainer() {
dismiss(animated: true) {
print(1)
self.tabBarVC?.showChatLogForTrainer(trainer: self.trainer!)
}
self.dismiss(animated: true) {
print(2)
self.tabBarVC?.showChatLogForTrainer(trainer: self.trainer!)
}
navigationController?.dismiss(animated: true, completion: {
print(3)
self.tabBarVC?.showChatLogForTrainer(trainer: self.trainer!)
})
self.navigationController?.dismiss(animated: true, completion: {
print(4)
self.tabBarVC?.showChatLogForTrainer(trainer: self.trainer!)
})
print(5)
}
正如您所看到的,我尝试了各种方式,但没有工作,控制台只输出5
。
令人沮丧的是,在我的应用程序的其他地方,我以与开头所示相同的方式呈现了一个视图,并使用dismiss(animated: true) { ... }
知道为什么它不能在这里工作吗?
答案 0 :(得分:25)
您必须从相应的导航控制器弹出视图控制器:
self.navigationController?.popViewController(animated: true)
答案 1 :(得分:7)
如果您使用pushviewcontroller method
然后使用dismiss
,则必须使用popviewcontroller method
。
试试这个:
self.navigationController?.popViewController(animated: true)