2017-02-16 4 views
0

Я новичок в swift ... Фактически я новичок в любых продуктах Apple. так что в основном я пытаюсь научиться строить и летать, пытаясь летать, и научиться летать на нем. Когда это заявление об отказе от ответственности я хочу помочь;)не может использовать «использованную фотографию» в IOS swift UIImagePickerController

Моя проблема в том, что я не могу заставить UIImagePickerController возвращаться с изображением для меня после того, как я взял его с камерой. Я думаю, что мне не хватает чего-то фундаментального или, по крайней мере, что-то важное, чтобы заставить его работать;) Но я не могу для жизни меня понять, где я делаю это неправильно.

это то, что я думаю, соответствующие части моего ViewController однако же спросить, если вы чувствуете, я уезжаю что-то важное из:

@IBAction func shootPhoto(_ sender: UIButton) { 
    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() 
    } 
} 



    private func imagePickerController(_ picker: UIImagePickerController, 
            didFinishPickingMediaWithInfo info: [String : AnyObject]) { 

    let image: UIImage = info[UIImagePickerControllerOriginalImage] as! UIImage; 
    myImageView.contentMode = .scaleToFill 

    myImageView.image = image 
    self.dismiss(animated:true, completion: nil) 

} 

Я должен признаться, я не знаю, какая версия стрижа я м используя. Я предполагаю последнее, потому что я только что обновил MacBook Pro до тех пор, пока он не сможет больше делать. Я использую Xcode 8.2.1, и я тестирую это на IPhone с IOS 10.2.1. Я думаю, что это IPhone 7s.

Любая помощь приветствуется

Edit: Я устанавливаю, что в этой функции, если это неправильное место, я переверну его, я просто не могу понять, где. ?

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view 
    picker.delegate = self 
} 

я знать, что это может быть копией другого вопроса, однако, когда я нажимаю на том, что один их обработки библиотеку фотографий.

Я пытаюсь обращаться с камерой и у меня проблема с с возвращением изображения в мою imagePickerController (_ подборщика: UIImagePickerController, didFinishPickingMediaWithInfo информация: [String: AnyObject]) ...

что они говорить о, кажется, не работает для меня, и они используют вещи, которые, как мне сказали, лишены.

редактировать 2:

это, как я инициализирует объект сборщика, а также того, как определен класс

class ViewController: UIViewController,UINavigationControllerDelegate,UIImagePickerControllerDelegate { 
    let picker = UIImagePickerController() 


    @IBOutlet weak var myImageView: UIImageView! 
+0

ты забыл добавить делегат 'picker.delegate = делегат '? –

+0

Перед добавлением 'present (picker, animated: true, completion: noil)' вам нужно установить контроллер в качестве делегата, чтобы вы могли получать обратные вызовы. Добавьте 'picker.delegate = self', он попадет в ваш' func imagePickerController (..) ' – Priyal

+0

@Priyal, если это то, что мне нужно сделать, тогда, когда я попробовал это два места, которые теперь были такими, как описано в моем редактировании, и другое Я пробовал это внутри метода shootPhoto – Helbo

ответ

0
private func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 

     if let image = info[UIImagePickerControllerOriginalImage] as? UIImage { 
       myImageView.image = image 
     } else if let image = info[UIImagePickerControllerEditedImage] as? UIImage { 
      myImageView.image = image 
     } 
     myImageView.contentMode = .scaleToFill 
     self.dismiss(animated:true, completion: nil) 
    } 
+0

просто попробовал это сейчас, и он по-прежнему даже не попал метод, когда я нажимаю кнопку «Использовать фотографию», – Helbo

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