如何防止请求照片访问时视图消失?

问题描述:

A UIViewController试图呈现UIImagePickerController,该应用尚未请求访问照片库的权限。如何防止请求照片访问时视图消失?

因此,在展示UIImagePickerController之前,iOS会显示UIAlertController以要求用户允许或拒绝访问照片。但是,先前可见的视图已被删除,因此警报将显示在底层视图控制器的视图上。

如何防止当前视图开始移除或至少防止在显示警报时显示底层视图?

发现了这件事:

UIImagePickerController必须有其属性modalPresentationStyle集到.Over...值,因此潜在的画面不消失后完成过渡。

所以不是

self.modalPresentationStyle = .FullScreen 

应该设置为那些

self.modalPresentationStyle = .OverFullScreen 
self.modalPresentationStyle = .OverCurrentContext // In this case also set `definesPresentationContext = true` for the presenting view controller. 

一个从documentation

OverFullScreen:视图的演讲风格,其中呈现视图 涵盖了屏幕。在演示完成时,视图层次下方的视图不是 。因此,如果 所呈现的视图控制器不填充屏幕上的不透明 内容,底层内容通过显示。