UIImagePickerControllerで選択した画像を,画面遷移すると同時にFilterViewControllerに受け渡したいのですが,画像の受け渡しがうまくいきません。
下記のコードで,実行しているつもりなのですが,ViewControllerでprint(filterImage)をしたら画像はオプショナル型で入っていますが、
FilterViewControllerのImageViewは真っ白で、print(filterImage)はnilでした。
何がいけないのかわからず困っております。どなたかよろしくお願いいたします。
ViewController
1class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 2 3 var filterImage: UIImage! 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 } 8 9 @IBAction func openAlbum() { 10 if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) { 11 let picker = UIImagePickerController() 12 picker.sourceType = .photoLibrary 13 picker.delegate = self 14 picker.allowsEditing = true 15 16 present(picker, animated: true, completion: nil) 17 } 18 } 19 20 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 21 if segue.identifier=="toPhoto"{ 22 let filterViewContoroller = segue.destination as! FilterViewController 23 let cameraImageView = filterViewContoroller.cameraImageView 24 } 25 } 26 27 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { 28 filterImage = info[.editedImage] as? UIImage 29 dismiss(animated: true, completion: nil) 30 self.performSegue(withIdentifier: "toPhoto", sender: nil) 31 } 32}
FilterViewController
1class FilterViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 2 3 @IBOutlet var cameraImageView: UIImageView! 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 cameraImageView.image = filterImage 8 } 9 10 override func didReceiveMemoryWarning() { 11 didReceiveMemoryWarning() 12 } 13} 14
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/24 15:42