質問編集履歴

1 誤字

nyupos

nyupos score 6

2018/02/13 00:10  投稿

swift imageViewについて
swiftでimageViewを使ったアプリを作っているのですが、カメラロールから写真を選んでimageViewに選んだ写真を表示しているのですが、それを画面遷移先にも表示させたいのですが中々上手くいきません。
どのようにしたら出来るのでしょうか?
画面の詳しい情報としてAの画面にはimageViewとボタンがあり、ボタンを押すとカメラロールが表示され写真を選ぶとその写真がimageViewのところで表示されます。
Bの画面はimageViewだけでそこにAの画面で表示した画像を表示させ、保存したいです。
勉強中でよくわかってないです。
```swift
import UIKit
class ProfileEditViewController: UIViewController, UITextFieldDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var birthplaceTextField: UITextField!
@IBOutlet weak var skillTextField: UITextField!
@IBOutlet weak var textView: UITextView!
@objc var textFieldString = ""
@objc var settingKey = "profile"
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
navigationController?.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
view.endEditing(true)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let profileViewController = segue.destination as! ProfileViewController
profileViewController.profImage = imageView
profileViewController.nameText = nameTextField.text
profileViewController.birthplaceText = birthplaceTextField.text
profileViewController.skillText = skillTextField.text
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
nameTextField.resignFirstResponder()
birthplaceTextField.resignFirstResponder()
skillTextField.resignFirstResponder()
return true
}
// 写真を選んだ後に呼ばれる処理
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
// 選択した写真を取得する
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
// ビューに表示する
self.imageView.image = image
// 写真を選ぶビューを引っ込める
self.dismiss(animated: true)
}
@IBAction func choosePicture(_ sender: Any) {
// カメラロールが利用可能か?
if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
// 写真を選ぶビュー
let pickerView = UIImagePickerController()
// 写真の選択元をカメラロールにする
// 「.camera」にすればカメラを起動できる
pickerView.sourceType = .photoLibrary
// デリゲート
pickerView.delegate = self
// ビューに表示
self.present(pickerView, animated: true)
}
}
@IBAction func saveButton(_ sender: Any) {
_ = navigationController?.popViewController(animated: true)
}
}
```
```swift
import UIKit
var labelText = String()
class ProfileViewController: UIViewController {
@IBOutlet weak var profImage: UIImageView!
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var birthplaceLabel: UILabel!
@IBOutlet weak var skillLabel: UILabel!
@objc var image: UIImage?
@objc var nameText: String?
@objc var birthplaceText: String?
@objc var skillText: String?
@objc let settingKey = "profile"
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
//profImage = image
nameLabel.text = nameText
birthplaceLabel.text = birthplaceText
skillLabel.text = skillText
self.navigationItem.hidesBackButton = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// dismiss(animated: false, completion: nil)
// let appDelegate = UIApplication.shared.delegate as! AppDelegate
// nameLabel.text = appDelegate.name
}
@IBAction func unwindToTop(segue: UIStoryboardSegue) {
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}
```
  • Swift

    12883 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る