Ios 如何检测用户已单击Don';我不允许进入摄像机

Ios 如何检测用户已单击Don';我不允许进入摄像机,ios,swift,xcode6,uiimagepickercontroller,Ios,Swift,Xcode6,Uiimagepickercontroller,我正在使用UIImagePicker向用户展示相机,以便在应用程序中使用 我的问题是,当用户第一次打开图像选择器时,他们会看到一条提示:“我的应用程序”希望访问您的相机”,有两个选项,不允许和确定 我的要求是,当用户单击“不允许”时,图像选择器将被取消,留下一个黑色视图。有没有办法检测到用户选择了不允许 下面是我要展示的代码UIImagePicker: var PhotoPicker:UIImagePickerController = UIImagePickerController() Phot

我正在使用
UIImagePicker
向用户展示相机,以便在应用程序中使用

我的问题是,当用户第一次打开图像选择器时,他们会看到一条提示:“我的应用程序”希望访问您的相机”,有两个选项,不允许和确定

我的要求是,当用户单击“不允许”时,图像选择器将被取消,留下一个黑色视图。有没有办法检测到用户选择了不允许

下面是我要展示的代码
UIImagePicker

var PhotoPicker:UIImagePickerController = UIImagePickerController()
PhotoPicker.delegate = self
PhotoPicker.sourceType = .Camera
PhotoPicker.cameraFlashMode = .Off
PhotoPicker.showsCameraControls = false
PhotoPicker.cameraDevice = .Rear
self.presentViewController(PhotoPicker, animated: false, completion: nil)

检查此项以检测相机权限

当用户选择不允许时使用此选项

PhotoPicker.dismissViewControllerAnimated(false, completion: nil)

要检测对库的访问:

为此,您需要使用AssetLibrary。首先,导入资产库框架:

import AssetsLibrary
import AVFoundation
然后,请求授权状态,如果未确定,则使用块捕获这些事件,如下所示:

if ALAssetsLibrary.authorizationStatus() == ALAuthorizationStatus.NotDetermined {

    let library = ALAssetsLibrary()
    library.enumerateGroupsWithTypes(.All, usingBlock: { (group, stop) -> Void in

        // User clicked ok
    }, failureBlock: { (error) -> Void in

        // User clicked don't allow
        imagePickerController.dismissViewControllerAnimated(true, completion: nil)
    })
}

要检测对摄像头的访问:

你需要使用AVFoundation来实现这一点。首先,导入avfoundation框架:

import AssetsLibrary
import AVFoundation
然后,与前面一样,在转到imagepicker并捕获事件时请求用户权限

if AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo) == AVAuthorizationStatus.NotDetermined {

    AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo, completionHandler: { (videoGranted: Bool) -> Void in

        // User clicked ok
        if (videoGranted) {

        // User clicked don't allow
        } else {
            imagePickerController.dismissViewControllerAnimated(true, completion: nil)
        }
    })
}
希望有帮助

在iOS 10中,使用:

import Photos

let authStatus = PHPhotoLibrary.authorizationStatus()
if authStatus == .notDetermined || authStatus == .denied {
    PHPhotoLibrary.requestAuthorization({ (status) in
        if status == PHAuthorizationStatus.authorized {

        } else {
            imagePickerController.dismissViewControllerAnimated(true, completion: nil)
        }
    })
}

小脑袋<代码>资产库在iOS9中被弃用,请选中
PHPhotoLibrary
insteadupdate:Photos available从iOS 8开始
Photos\u available\u iOS\u TVOS(8\u 0,10\u 0)