关闭推送视图控制器

时间:2017-03-24 18:05:30

标签: ios swift uiviewcontroller viewcontroller dismiss

所以我有一个视图控制器,我显示如下:

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) { ... }

解雇了

知道为什么它不能在这里工作吗?

2 个答案:

答案 0 :(得分:25)

您必须从相应的导航控制器弹出视图控制器:

self.navigationController?.popViewController(animated: true)

答案 1 :(得分:7)

如果您使用pushviewcontroller method然后使用dismiss,则必须使用popviewcontroller method

试试这个:

self.navigationController?.popViewController(animated: true)