【发布时间】:2016-08-25 09:19:07
【问题描述】:
这是一个常见问题,对于仍然不知道如何正确处理该问题的每个人来说,这是一个场景。
模态显示的视图控制器 A -> B -> C
现在你想在一个平滑的动画着陆时用 B 解除 C 以查看控制器 A。所以苹果文档说你只需要执行:
[A dismissViewConttollerAnimated:YES completion:nil];
C 和 B 应该很好地消失了。这确实是经常需要的场景,我对常见用例无法正常工作感到非常失望。 Why the top view controller C disappears in a moment and B view controller appears with dismissing animation instead of C to be visible for the whole animation process? 我真的很想只看到 C 视图控制器被解雇。
【问题讨论】:
-
展示你的演示代码
-
它的控制器 B 应该被解散而不是 A,因为你想降落在 A 上。理想情况下,它应该是 [B dismissViewControllerAnimated:YES completion:nil];
-
当您执行 [B dismissViewControllerAnimate:YES completion:nil] 时,它将落在 B 而不是 A。这就是苹果文档所说的并且也经过测试......
-
@Wain 有第 n 个要展示...这是非常简单的用例,没有超过 1 行代码。所有的 segues 都是通过 IB 完成的,只有以编程方式执行解雇...
-
我猜你可以做的是完全清除视图控制器堆栈(没有动画),然后从应用程序委托中重新(动画)加载视图控制器 A。并且要进行平滑过渡,您可能应该截取 C 的屏幕截图,以便在呈现 A 的同时进行平滑的动画过渡。对于我的经验水平来说,它非常复杂,所以没有测试它,我不知道它是否会工作。
标签: ios objective-c cocoa-touch