使用奇怪的行为同时解除多个视图控制器

时间:2016-08-25 09:19:07

标签: ios objective-c cocoa-touch

这是一个常见的问题,对于仍然不知道如何处理的正确方法的每个人来说,这就是场景。

模态呈现的视图控制器A - > B - > ç

现在你想在一个平滑的动画登陆时用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视图控制器的消失。

enter image description here

2 个答案:

答案 0 :(得分:0)

在这种情况下使用的最佳解决方案是Unwind Segue。您可以直接将开关切换到层次结构中的任何视图控制器。

答案 1 :(得分:0)

B的解雇不能与解雇C同时进行。当两个动画以某种方式相关时,iOS中有时会发生这种情况 - 我不知道确切的细节。

如果在C的解雇完成块中放置断点,您可能会看到finished参数为false,表示C的动画已被中断。

我认为正确的解决方案是仅解雇B 。自B出现以来,C将自动消失。