如何防止请求照片访问时视图消失?
问题描述:
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:视图的演讲风格,其中呈现视图 涵盖了屏幕。在演示完成时,视图层次下方的视图不是 。因此,如果 所呈现的视图控制器不填充屏幕上的不透明 内容,底层内容通过显示。