2016-09-21 66 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正在打印: [通用]創建一個未知類型的圖像格式是錯誤 – Alex

+0

感謝Nirav D,但事實並非如此。我的info.plist文件已經嵌入了隱私 - 照相機使用說明和隱私 - 照片庫使用說明 – Alex

+0

強制我檢查此處打印的解決方案進行進一步調查,實際上給出瞭解決方案:-) https://論壇。 developer.apple.com/thread/57026 這是我imagePickerController: FUNC imagePickerController(_選擇器:的UIImagePickerController,didFinishPickingMediaWithInfo信息:[字符串:AnyObject]){ 這是它如何改變('Any'而不是' AnyObject'): func imagePickerController(_ picker:UIImagePickerController,didFinishPickingMediaWithInfo info:[String:Any]){ 希望這可以幫助有同樣問題的人。 – Alex

回答

0

組代表中自viewDidLoad中