我有UIViewController
(A)模态地呈现第二个视图控制器(B)。然后,该第二视图控制器以模态方式呈现UIImagePickerController
(IP)。基本上,我有一堆2个模态视图控制器。
(A) --modally presents--> (B) --modally presents--> (IP)
视图控制器(A)是图像选择器的委托,它使用以下方式解除整个模态堆栈:
[self dismissModalViewControllerAnimated:YES];
问题在于动画。当解除这样的模态堆栈时,当前可见的视图应该从屏幕底部滑出,露出新近可见的视图。所以在这种情况下,我希望(IP)从屏幕底部滑落,露出(A)的视图。
然而,实际发生的是:图像选择器视图消失,立即显示(A)的视图,只有导航栏动画离开屏幕底部。状态栏也保持黑色半透明,而不是转换回标准灰色;这似乎表明图像选择器通常会进行某种“清理”,当它作为模态堆栈的一部分被解除时,它不会被执行。
如果我用另一个通用视图控制器替换图像选择器,动画工作正常。如果(B)解除了(IP),动画也可以正常工作。仅在解除包含UIImagePickerController
的多个模态视图控制器时才会出现此问题。
有没有人见过这个?任何想法我可能做错了或如何解决这个问题?
答案 0 :(得分:0)
不幸的是,方法dismissModalViewControllerAnimated
并不像您期望的那样完全起作用(至少在视觉上不是这样)。为了达到你想要的效果,你需要同时关闭一行中的两个模态视图控制器,第一个非动画和第二个动画,如图所示。 here