5

ユーザーが最初にフォト アルバムへのアクセスを許可しなかった場合は、[キャンセル] と [設定] から選択できるポップアップが表示されます。設定を選択すると、アプリのカメラとフォト ライブラリを有効にできる設定ページが表示されます。ただし、ユーザーが設定でカメラまたは写真ライブラリのスイッチを切り替えるとすぐに、アプリがクラッシュし、「デバッガーからのメッセージ: シグナル 9 により終了しました」という出力が表示されます。以下は私のポップアップのコードです

    @IBAction func cameraBarBtnPress(sender: AnyObject) {

    let photoAuthStatus = PHPhotoLibrary.authorizationStatus()

    switch photoAuthStatus {

    case .Authorized:
        presentFusumaCameraVC()

    case .Denied, .Restricted :

        showNeedPhotoAlbumAccessPopup()

    case .NotDetermined:
        PHPhotoLibrary.requestAuthorization({ (authStatus: PHAuthorizationStatus) in
            switch authStatus {
            case .Authorized:
                self.presentFusumaCameraVC()

            case .Denied, .Restricted :
                self.showNeedPhotoAlbumAccessPopup()

            case .NotDetermined:
                print("Shouldnt get to here")
            }
        })
    }
}

func showNeedPhotoAlbumAccessPopup() {
    let alertController = UIAlertController(title: "Enable Photo Album Access", message: "", preferredStyle: .Alert)
    let cancelAction = UIAlertAction(title: "Cancel", style: .Default, handler: nil)
    let settingsAction = UIAlertAction(title: "Settings", style: .Default, handler: { (action: UIAlertAction) in
        let settingsUrl = NSURL(string: UIApplicationOpenSettingsURLString)
        if let url = settingsUrl {
            UIApplication.sharedApplication().openURL(url)
        }
    })
    alertController.addAction(settingsAction)
    alertController.addAction(cancelAction)
    self.presentViewController(alertController, animated: true, completion: nil)
}

ユーザーがスイッチを切り替えた後にアプリに戻って写真の選択を開始できるように、これを処理する正しい方法は何でしょうか?

4

1 に答える 1