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

Ios 如何防止在请求照片访问时视图消失?,ios,swift,uiviewcontroller,uiimagepickercontroller,Ios,Swift,Uiviewcontroller,Uiimagepickercontroller,UIViewController试图呈现UIImagePickerController,但应用程序尚未请求访问照片库的权限 因此,在显示UIImagePickerControlleriOS之前,会显示一个UIAlertController,要求用户允许或拒绝访问照片。但是,先前可见的视图已被删除,因此警报将显示在基础视图控制器的视图上 如何防止当前视图在显示警报时被删除,或者至少防止基础视图在显示警报时可见?找到它: UIImagePickerController必须将其属性modalPrese

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.
从:

全屏显示:显示视图的视图显示样式 覆盖屏幕。显示的内容下的视图不可用 演示文稿完成时从视图层次结构中删除。所以如果 显示的视图控制器不会在屏幕中填充不透明的内容 内容,基础内容通过显示

发现它:

UIImagePickerController
必须将其属性
modalPresentationStyle
设置为
.Over…
值,以便在转换完成后基础屏幕不会消失

所以不是

self.modalPresentationStyle = .FullScreen
它应该设置为其中一个

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

全屏显示:显示视图的视图显示样式 覆盖屏幕。显示的内容下的视图不可用 演示文稿完成时从视图层次结构中删除。所以如果 显示的视图控制器不会在屏幕中填充不透明的内容 内容,基础内容通过显示