根视图控制器呈现的两个视图控制器之间的转换

Posted

技术标签:

【中文标题】根视图控制器呈现的两个视图控制器之间的转换【英文标题】:Transition between two viewControllers presented by rootView controller 【发布时间】:2014-11-03 18:31:22 【问题描述】:

我的用例如下:

VC1 - 根控制器 VC2 和 VC3 是不同的视图控制器 VC1 是 VC2 的代表 VC1 呈现 VC2 然后作为委托,VC1 解除 VC2 关闭 VC2 后,VC1 立即呈现 VC3

在最后一步中,我的过渡变差了,因为在 dismissVC2 和 beforePresentVC3 之后,VC1 在过渡期间可见

我该如何解决这个问题,或者有可能吗??

注意:我希望 VC1 在窗口层次结构中,以便我可以从 VC3 转到 VC1

【问题讨论】:

[self dismissViewControllerAnimated:NO completion:^ //关闭 VC2 时,在此处显示 VC3 动画 NO ]; 不,我在关闭 VC2 时说不 我试过了..没用,这意味着 VC1 在呈现 VC3 时可见。 您在展示 VC3 时使用的是 animate :yes 吗? @adnan 是的..我是签名:是的 【参考方案1】:

我认为你遇到了一些毫无意义的麻烦。您可以轻松拥有一个隐藏的 navigationController 并创建和堆叠每个 VC,然后使用

self.navigationController popToViewController: animated:

self.navigationController pushToViewController: animated:

那么你可以从 1 移到 3,或者从 3 移到 1,没有问题。如果您创建了所有 VC,并且可以从 3 个 vc 中的任何一个访问

【讨论】:

以上是关于根视图控制器呈现的两个视图控制器之间的转换的主要内容,如果未能解决你的问题,请参考以下文章

如何在呈现之前设置根视图控制器的属性?

当所有视图控制器转换完成时,应用程序委托检查

如果我添加一个子视图控制器,并用它来呈现另一个视图控制器,整个根视图会被替换吗?

嵌入到导航控制器中的动画根视图控制器以模态方式呈现

呈现一个导航栏和一个非根视图标签栏控制器

两个视图之间的 Swift CATransition - 滑过效果上一个屏幕变白