私はprepareforSegueスウィフト3から
によって第二UIViewControlleler
に私のコードを第一UIViewController
から画像を渡すためにしようとしています1つのViewControllerからの画像を渡すことができません: -
extension ViewController:UIImagePickerControllerDelegate,UINavigationControllerDelegate {
func handleImg() {
let picker = UIImagePickerController()
picker.delegate = self
picker.allowsEditing = true
present(picker, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
var selectedImageFromPicer : UIImage?
if let editedImage = info["UIImagePickerControllerEditedImage"] as? UIImage {
selectedImageFromPicer = editedImage
} else if let originalImage = info["UIImagePickerControllerOriginalImage"] as? UIImage {
selectedImageFromPicer = originalImage
}
if let selectedImage = selectedImageFromPicer {
imgg.image = selectedImage
}
guard let imageUrl = info["UIImagePickerControllerImageURL"] as? URL else {
return
}
self.performSegue(withIdentifier: "selected", sender: self)
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
print("canceled picker")
dismiss(animated: true, completion: nil)
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "selected" {
let vc = segue.destination as! secondVC
vc.img.image = self.imgg.image
}
}
私はエラーを取得していますライン上のvc.img.image = self.imgg.image
エラー
fatal error: unexpectedly found nil while unwrapping an Optional value
httpsに
とのviewDidLoad()内
var image: UIImage? = nil
設定した画像を宣言する変更します/stackoverflow.com/questions/31576232/passing-image-to-another-view- controller-swift、およびnilではないデータを検証します。if-letを使用してnil値を処理できます。 –"select"という名前のストーリーボード内のsegueと、( "secondVC"というコードで)デスティネーションビューコントローラのタイプを確認してください。 vcがゼロである可能性があります。 – Eridana
代わりにvc.img = self.imggを試してください – YinKiet