質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

272閲覧

swift imageViewについて

nyupos

総合スコア6

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

2クリップ

投稿2018/02/12 09:37

編集2022/01/12 10:55

swiftでimageViewを使ったアプリを作っているのですが、カメラロールから写真を選んでimageViewに選んだ写真を表示しているのですが、それを画面遷移先にも表示させたいのですが中々上手くいきません。
どのようにしたら出来るのでしょうか?

画面の詳しい情報としてAの画面にはimageViewとボタンがあり、ボタンを押すとカメラロールが表示され写真を選ぶとその写真がimageViewのところで表示されます。
Bの画面はimageViewだけでそこにAの画面で表示した画像を表示させ、保存したいです。

勉強中でよくわかってないです。

swift

1import UIKit 2 3class ProfileEditViewController: UIViewController, UITextFieldDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate { 4 5 @IBOutlet weak var imageView: UIImageView! 6 @IBOutlet weak var nameTextField: UITextField! 7 @IBOutlet weak var birthplaceTextField: UITextField! 8 @IBOutlet weak var skillTextField: UITextField! 9 @IBOutlet weak var textView: UITextView! 10 11 @objc var textFieldString = "" 12 @objc var settingKey = "profile" 13 14 override func viewDidLoad() { 15 super.viewDidLoad() 16 // Do any additional setup after loading the view, typically from a nib. 17 18 19 navigationController?.delegate = self 20 21 } 22 23 override func didReceiveMemoryWarning() { 24 super.didReceiveMemoryWarning() 25 // Dispose of any resources that can be recreated. 26 } 27 28 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 29 view.endEditing(true) 30 } 31 32 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 33 34 let profileViewController = segue.destination as! ProfileViewController 35 36 profileViewController.profImage = imageView 37 profileViewController.nameText = nameTextField.text 38 profileViewController.birthplaceText = birthplaceTextField.text 39 profileViewController.skillText = skillTextField.text 40 } 41 42 43 func textFieldShouldReturn(_ textField: UITextField) -> Bool { 44 nameTextField.resignFirstResponder() 45 birthplaceTextField.resignFirstResponder() 46 skillTextField.resignFirstResponder() 47 return true 48 } 49 50 // 写真を選んだ後に呼ばれる処理 51 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 52 // 選択した写真を取得する 53 let image = info[UIImagePickerControllerOriginalImage] as! UIImage 54 // ビューに表示する 55 self.imageView.image = image 56 // 写真を選ぶビューを引っ込める 57 self.dismiss(animated: true) 58 } 59 60 @IBAction func choosePicture(_ sender: Any) { 61 62 // カメラロールが利用可能か? 63 if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) { 64 // 写真を選ぶビュー 65 let pickerView = UIImagePickerController() 66 // 写真の選択元をカメラロールにする 67 // 「.camera」にすればカメラを起動できる 68 pickerView.sourceType = .photoLibrary 69 // デリゲート 70 pickerView.delegate = self 71 // ビューに表示 72 self.present(pickerView, animated: true) 73 } 74 } 75 76 @IBAction func saveButton(_ sender: Any) { 77 78 _ = navigationController?.popViewController(animated: true) 79 80 } 81 82}

swift

1import UIKit 2 3var labelText = String() 4 5class ProfileViewController: UIViewController { 6 7 8 @IBOutlet weak var profImage: UIImageView! 9 @IBOutlet weak var nameLabel: UILabel! 10 @IBOutlet weak var birthplaceLabel: UILabel! 11 @IBOutlet weak var skillLabel: UILabel! 12 13 @objc var image: UIImage? 14 @objc var nameText: String? 15 @objc var birthplaceText: String? 16 @objc var skillText: String? 17 18 @objc let settingKey = "profile" 19 20 21 override func viewDidLoad() { 22 super.viewDidLoad() 23 // Do any additional setup after loading the view. 24 //profImage = image 25 nameLabel.text = nameText 26 birthplaceLabel.text = birthplaceText 27 skillLabel.text = skillText 28 29 self.navigationItem.hidesBackButton = true 30 31 32 } 33 34 override func didReceiveMemoryWarning() { 35 super.didReceiveMemoryWarning() 36 // Dispose of any resources that can be recreated. 37 } 38 39 override func viewDidAppear(_ animated: Bool) { 40 super.viewDidAppear(animated) 41 42// dismiss(animated: false, completion: nil) 43// let appDelegate = UIApplication.shared.delegate as! AppDelegate 44// nameLabel.text = appDelegate.name 45 } 46 47 48 49 @IBAction func unwindToTop(segue: UIStoryboardSegue) { 50 51 } 52 53 54 /* 55 // MARK: - Navigation 56 57 // In a storyboard-based application, you will often want to do a little preparation before navigation 58 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 59 // Get the new view controller using segue.destinationViewController. 60 // Pass the selected object to the new view controller. 61 } 62 */ 63 64}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

profImageはStoryboardから生成されるので、遷移元で渡しても上書きされてしまいそうです。
imageだけを渡して、遷移先でprofImageにセットしてやればいけると思います。

投稿2018/02/13 01:15

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyupos

2018/02/13 02:01

セットするのは遷移先のviewDidLoadに「profImage = UIImageView(image: imagedata)」で良いのでしょうか?
fuzzball

2018/02/13 02:03

「profImageはStoryboardから生成される」ので、インスタンスを生成する必要はありません。というか生成してはいけません。
nyupos

2018/02/13 02:39

「profImage.image = imagedata」で実行したらできました! 丁寧に教えて頂きありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問