带有自定义转换的 UIViewController;模态呈现后丢失

UIViewController with Custom Transition; Lost After Modal Presentation

场景:一个 UIViewController 使用自定义转换来呈现另一个 VC。这个 VC 并没有占据整个屏幕;它显示为第一层之上的一层。这里的一切都很好。

现在呈现的 VC 想要显示一个 UIImagePickerController — 拍照。但是一旦关闭该控制器,第二个 VC 将显示为全屏视图:原始过渡的效果已经丢失。

我借用了别人的UIViewController transitions demo代码来快速演示这个效果。添加部分屏幕第二个 VC 并调出相机视图后,关闭它会留下全屏第二个视图。

我找不到其他人遇到这个问题,但它的可重复性表明存在框架错误。

https://github.com/aaronvegh/CustomViewControllerTransition

找到解决方案:您必须在相机 VC 上设置 modalPresentationStyle 属性 才能显示它。在我的实例中,我将它设置为 UIModalPresentationCustom,这解决了问题:当相机被关闭时,底层的自定义过渡边界被保留。