Как проверить изображение ноль при доступе к камере и нажмите кнопку отмены на камере - PullRequest
0 голосов
/ 05 июля 2019

Как проверить ноль изображения при доступе к камере и нажать кнопку отмены на камере

Я тестирую
Первый шаг

  1. Нажмите кнопку фотосъемки
    • доступ к камере
    • Нажмите Отмена. Я получаю значение на панели вывода.
      • Проверьте изображение, сделайте фото ==> Необязательно (UIImagePickerController: 0x107879a00)
    • Нажмите кнопку Сохранить фото на проекте
      Я получаю значение nil
      • Неустранимая ошибка: неожиданно обнаружен nil при развертывании необязательного значения 2019-07-05 08: 52: 24.667938 + 0700 MyProject [2307: 786209] Неустранимая ошибка: неожиданно найденный nilпри развертывании необязательного значения

я проверяю
второй шаг

  1. Сфотографируйте

    2. нажмите на фото для использования на камере
    • Сфотографируйте на фотографии нажмите на фото на камеру

      Проверьте снимок на фотографии ==> Необязательно (UIImagePickerController: 0x10286ca00)

Я хочу проверить отмену регистра на камере и вернуться назад, нажать кнопку сохранения в проекте

Как исправить… В этом случае Мой код ниже

Сфотографируйте

 @IBAction func takePhotoReturnOfSealButton(_ sender: UIButton) {
        imagePickerStoreListReturnSealLock = UIImagePickerController()
        imagePickerStoreListReturnSealLock.delegate = self
        imagePickerStoreListReturnSealLock.sourceType = .camera
        present(imagePickerStoreListReturnSealLock,animated: true, completion: nil)
        print("Check image take photo ==> \(String(describing: imagePickerStoreListReturnSealLock))")
    }//takePhotoReturnOfSealButton

Сохранить фото

@IBAction func saveImageToDevice(_ sender: UIButton) {
        //Save photo to device not success have nil value
        if(imagePickerStoreListReturnSealLock == nil){
            showAlert(title: "No Have Photo", message: "Please take photo")
            print("Check image cannot save ==> \(String(describing: imagePickerStoreListReturnSealLock))")
        }else{
//          Save photo to device success
            UIImageWriteToSavedPhotosAlbum(showImageTakePhotoReturnOfSeal.image!, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)
            print("Check image Save to device ==> \(String(describing: showImageTakePhotoReturnOfSeal))")
        }
    }//saveImageToDevice

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

При нажатии на кнопку отмены средства выбора изображения будет вызван следующий метод делегата:

public func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        picker.dismiss(animated: true, completion: nil)
    }

и при выборе изображения будет вызван следующий метод делегата:

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
            let image : UIImage = info[UIImagePickerController.InfoKey.originalImage] as! UIImage
            picker.dismiss(animated: true, completion: nil)
            UIImageWriteToSavedPhotosAlbum(image!, nil, nil, nil)//to save image in saved photo album
        }

Надеюсь, это поможет

0 голосов
/ 05 июля 2019

Всякий раз, когда вы отменяете Image Picker, вызывается метод делегата -

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    //Perform your action when cancel has been pressed
}

Этот метод вызывается при выборе изображения -

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
   if picker == imagePicker {
        //Save your image
        imagePicker.dismiss(animated: true, completion: nil)
   }
}

Просто не забудьте определить это выше -

var imagePicker = UIImagePickerController()

и в viewDidLoad

imagePicker.delegate = self
...