1.実現したいこと
カメラで取得した画像データを2つのViewControllerに表示させるアプリを実装させています。
カメラ画像をアプリの起動画面に表示させるまでは上手くいったのですが、他クラスへの値の受け渡し方法がわからず、もう一つのViewControllerに画像を表示させることができません。
まだSwiftを始めたばかりで改善方法がわからないので、教えていただけると幸いです
2.発生しているエラー
3.試してみたこと
1.実現したいこと
下のような、カメラで取得した画像データを2つのViewControllerに表示させるアプリを実装させています。
図中のボタンを押すと
カメラが起動し
撮影した画像をホームと
folder画面に表示できるようなアプリを作成したいです。
カメラ画像をアプリの起動画面に表示させるまでは上手くいったのですが、他クラスへの値の受け渡し方法がわからず、もう一つのViewControllerに画像を表示させることができません。まだSwiftを始めたばかりで右も左もわからないので、改善方法を教えていただけると幸いです。
2.発生しているエラー・エラーが起きた経緯
まず、TabBarControllerとViewController二つを使用して下画像のようにストーリーボードを組み立てました。
次に、作成したストーリーボードに則って、ViewController.swiftを作成しました。
ViewController.swift
swift,Xcode
1import UIKit 2 3class ViewController: UIViewController, UIImagePickerControllerDelegate & UINavigationControllerDelegate {//ホーム画面 4 5 @IBOutlet weak var imageView: UIImageView! 6 @IBAction func UploadCamera(_ sender: Any) { 7 let camera = UIImagePickerController.SourceType.camera 8 if UIImagePickerController.isSourceTypeAvailable(camera) { 9 let picker = UIImagePickerController()//モーダルビュー 10 picker.sourceType = camera//代入 11 picker.delegate = self//インスタンス 12 self.present(picker, animated: true)//画面表示 13 } 14 } 15 16 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { 17 //画像はinfoに格納. 18 let image = info[UIImagePickerController.InfoKey.originalImage] as! UIImage 19 let Second = SecondViewController() 20 Second.secondimageView.image = image//secondimageViewに代入 21 self.imageView.image = image// imageViewに代入 22 UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)//画像を保存. 23 self.dismiss(animated: true)//mordalViewControllerを消去. 24 } 25 26 override func viewDidLoad() { 27 super.viewDidLoad() 28 // Do any additional setup after loading the view. 29 } 30} 31 32class SecondViewController: UIViewController {//folder画面 33 @IBOutlet weak var secondimageView: UIImageView! 34 override func viewDidLoad() { 35 super.viewDidLoad() 36 // Do any additional setup after loading the view. 37 } 38}
ここで、ViewControllerはホーム画面,SecondViewControllerはfolder画面を意味します。
これをiPhone8の実機で実行しカメラ撮影をすると、下のようなエラーが出てきてしまいました。
うまくカメラで得たデータを他のクラスに渡す方法がよく分からなかったので、改善策教えていただけると幸いです。
あなたの回答
tips
プレビュー