首页 > 解决方案 > 关闭所有呈现的视图控制器 modalPresentationStyle = .custom

问题描述

我有 3 个视图控制器。1.ViewController 2.InitialViewController 3.FinalViewController

ViewController 被添加到导航控制器。ViewController 的 modalPresentationStyle 是custom. ViewController 呈现 InitialViewController。InitialViewController 的modalPresentationStylecustom也是。InitialViewController 呈现 FinalViewController。FinalViewController modalPresentationStylecustom也是。FinalViewController 呈现 InitialViewController(是的,第二次使用更新的 UI)。InitialViewController 提供了 FinalViewController 的另一个实例。

最后的安排是这样的

NavigationController -> ViewController (presents) -> InitialViewController 1 (presents) -> FinalViewController 1 (presents) -> InitialViewController 2 (presents) -> FinalViewController 2. 

当我通过调用关闭 FinalViewController 2

dismiss(animated: true, completion: nil)

我还有 InitialViewController 1、FinalViewController 1、InitialViewController 2 的 TransitionViews。InitialViewController 2 还在。(如图所示) 在此处输入图像描述

我知道这可以通过调用来删除

self.presentingViewController?.presentingViewController?.presentingViewController?.presentingViewController?.dismiss(animated: true, completion: nil)

或者

self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)

但是通过这样做,FinalViewController 2 的解雇不是动画的。我是否需要另一个自定义过渡来完成此解雇?

标签: iosswift

解决方案


推荐阅读