解雇模态UIImagePickerController时的动画效果不佳

时间:2011-07-05 14:53:52

标签: iphone ios cocoa-touch uiviewcontroller uiimagepickercontroller

我有UIViewController(A)模态地呈现第二个视图控制器(B)。然后,该第二视图控制器以模态方式呈现UIImagePickerController(IP)。基本上,我有一堆2个模态视图控制器。

(A) --modally presents--> (B) --modally presents--> (IP)

视图控制器(A)是图像选择器的委托,它使用以下方式解除整个模态堆栈:

[self dismissModalViewControllerAnimated:YES];

问题在于动画。当解除这样的模态堆栈时,当前可见的视图应该从屏幕底部滑出,露出新近可见的视图。所以在这种情况下,我希望(IP)从屏幕底部滑落,露出(A)的视图。

然而,实际发生的是:图像选择器视图消失,立即显示(A)的视图,只有导航栏动画离开屏幕底部。状态栏也保持黑色半透明,而不是转换回标准灰色;这似乎表明图像选择器通常会进行某种“清理”,当它作为模态堆栈的一部分被解除时,它不会被执行。

如果我用另一个通用视图控制器替换图像选择器,动画工作正常。如果(B)解除了(IP),动画也可以正常工作。仅在解除包含UIImagePickerController的多个模态视图控制器时才会出现此问题。

有没有人见过这个?任何想法我可能做错了或如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

不幸的是,方法dismissModalViewControllerAnimated并不像您期望的那样完全起作用(至少在视觉上不是这样)。为了达到你想要的效果,你需要同时关闭一行中的两个模态视图控制器,第一个非动画和第二个动画,如图所示。 here