我有以下结构:

  • mainVC中,我给出了一个模态viewController modalVC:
    let modalVC: ModalVC = ModalVC()
    modalVC.modalPresentationStyle = .overCurrentContext
    modalVC.modalTransitionStyle = .coverVertical
    self.present(modalVC, animated: false, completion: nil)
    
  • modalVC中,我展示了另一个viewController chatVC,但是这次没有.overCurrentContext选项:
    let chatVC: ChatVC = ChatVC()
    self.present(chatVC, animated: false, completion: nil)
    

  • 在这一点上,我有以下几点:
    mainVC --present模态-> modalVC --present-> chatVC
    我想关闭chatVCmodalVC以再次显示mainVC

    我试过了:
    self.presentingViewController?.presentingViewController?.dismiss(animated: false, completion: nil)
    

    没有成功

    有任何想法吗?提前致谢

    最佳答案

    有时有些冗长可能会有所帮助...有助于了解正在发生的事情与您期望发生的事情。像这样尝试:

        if let myPresenter = self.presentingViewController {
    
            if let hisPresenter = myPresenter.presentingViewController {
    
                hisPresenter.dismiss(animated: false, completion: nil)
    
            }
    
        }
    

    如果这不起作用,那么您至少可以逐步调试以找出不正确的地方。

    10-04 22:17