【问题标题】:Dismiss pushed view controller关闭推送的视图控制器
【发布时间】:2017-03-24 18:05:30
【问题描述】:

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

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) { ... } 很好地解散了它

知道为什么它在这里不起作用吗?

【问题讨论】:

    标签: ios swift uiviewcontroller viewcontroller dismiss


    【解决方案1】:

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

    self.navigationController?.popViewController(animated: true)
    

    【讨论】:

      【解决方案2】:

      如果你使用pushviewcontroller method,那么dismiss你必须使用popviewcontroller method

      试试这个:

      self.navigationController?.popViewController(animated: true)
      

      【讨论】:

      • 现在我不觉得自己很傻!有没有办法用完成方法弹出一个视图,就像你可以用解雇一样?
      • Popviewcontroller 没有完成方法。
      • 但是可以查看viewwilldisappear方法
      猜你喜欢
      • 1970-01-01
      • 2016-10-26
      • 2012-01-09
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-16
      相关资源
      最近更新 更多