2016-09-21 8 views
2

Я с ума схожу с этим.UIIMagePickerController не работает должным образом с Swift 3

При переносе простой реализации UIIMagePicker у меня все работает нормально, никаких проблем, никаких предупреждений. Запуск на обоих симуляторах и устройстве PickerController просто не учитывает новое изображение и не будет применяться к UImageView.

Это мой код:

@IBOutlet weak var profilePictureImageView: UIImageView! 
let picker = UIImagePickerController() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    picker.delegate = self 
    } 

//Opening Camera to take a new picture 
@IBAction func takeNewPictureButtonDidTouch(_ sender: AnyObject) { 
    if UIImagePickerController.isSourceTypeAvailable(.camera) { 
     picker.allowsEditing = false 
     picker.sourceType = UIImagePickerControllerSourceType.camera 
     picker.cameraCaptureMode = .photo 
     picker.modalPresentationStyle = .fullScreen 
     present(picker,animated: true,completion: nil) 
    } else { 
     noCamera() 
    } 
} 

//Opening the library to select an existing picture 
@IBAction func openPicturesLibraryButtonDidTouch(_ sender: AnyObject) { 
    picker.allowsEditing = false 
    picker.sourceType = .photoLibrary 
    picker.mediaTypes = UIImagePickerController.availableMediaTypes(for: .photoLibrary)! 
    picker.modalPresentationStyle = .popover 
    present(picker, animated: true, completion: nil) 
    } 

//MARK: - Delegates 
func imagePickerController(_ picker: UIImagePickerController, 
          didFinishPickingMediaWithInfo info: [String : AnyObject]) 
{ 
    var chosenImage = UIImage() 
    chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage //2 
    profilePictureImageView.contentMode = .scaleAspectFill //3 
    profilePictureImageView.image = chosenImage //4 
    dismiss(animated:true, completion: nil) //5 
} 
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { 
    dismiss(animated: true, completion: nil) 
} 

func noCamera(){ 
    let alertVC = UIAlertController(
     title: "No Camera", 
     message: "Sorry, this device has no camera", 
     preferredStyle: .alert) 
    let okAction = UIAlertAction(
     title: "OK", 
     style:.default, 
     handler: nil) 
    alertVC.addAction(okAction) 
    present(
     alertVC, 
     animated: true, 
     completion: nil) 
} 
} 
+0

Забыла сказать: это то, что Consolle печатает из: [Generic] Создание формата изображения с неизвестным типом является ошибкой – Alex

+0

Спасибо Nirav D, но это не тот случай. Мой файл info.plist уже содержит конфиденциальность. Использование камеры. Конфиденциальность. - Библиотека фотографий. Описание использования. – Alex

+0

. Заставляя меня проверять консоль, чтобы напечатать здесь решение для дальнейшего изучения, фактически дал решение :-) https: // форумы. developer.apple.com/thread/57026 Это был мой imagePickerController: функ imagePickerController (_ подборщика: UIImagePickerController, didFinishPickingMediaWithInfo информация: [String: AnyObject]) { Это, как он меняется ('Any' вместо' AnyObject'): func imagePickerController (_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) { надеюсь, что это может помочь кому-то с той же проблемой. – Alex

ответ

Смежные вопросы