teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

2021/11/25 13:15

投稿

mickeydog
mickeydog

スコア10

title CHANGED
File without changes
body CHANGED
@@ -13,7 +13,6 @@
13
13
  class ScrollMapViewController: UIViewController, UIImagePickerControllerDelegate, UIScrollViewDelegate, UINavigationControllerDelegate {
14
14
  var imageView = UIImageView()
15
15
  var scrollView = UIScrollView()
16
- var defaults = UserDefaults.standard
17
16
 
18
17
  override func viewDidLoad() {
19
18
  super.viewDidLoad()
@@ -21,11 +20,13 @@
21
20
  style: .plain, target: self, action: #selector(MapButtonTap(sender:)))
22
21
  self.navigationItem.rightBarButtonItems = [MapButtonItem]
23
22
 
23
+ if MenuTagNo == 1 {
24
- let picker = UIImagePickerController()
24
+ let picker = UIImagePickerController()
25
- picker.sourceType = .photoLibrary
25
+ picker.sourceType = .photoLibrary
26
- picker.delegate = self
26
+ picker.delegate = self
27
- present(picker, animated: true)
27
+ present(picker, animated: true)
28
- self.present(picker, animated: true)
28
+ self.present(picker, animated: true)
29
+ }
29
30
 
30
31
  let screenWidth:CGFloat = self.view.frame.width
31
32
  let screenHeight:CGFloat = self.view.frame.height
@@ -37,17 +38,14 @@
37
38
  self.view.addSubview(scrollView)
38
39
  self.scrollView.addSubview(imageView)
39
40
  }
40
- @objc func MapButtonTap(sender: UIButton) {
41
+ @objc func MapButtonTap(sender: UIButton) {
41
- defaults.UIImageToData(image: imageView.image!, forKey: "image")
42
-
43
- let storyboard: UIStoryboard = self.storyboard!
44
- let MapVC = storyboard.instantiateViewController(withIdentifier: "Map") as! MapViewController
42
+ let MapVC = storyboard?.instantiateViewController(withIdentifier: "Map") as! MapViewController
45
43
  MapVC.MapImageView = imageView
46
44
  navigationController?.pushViewController(MapVC, animated: true)
47
45
  }
48
46
 
49
47
  func reSetupImageView() {
50
- imageView.image = defaults.getImageData(forKey: "image")
48
+ self.scrollView.addSubview(imageView)
51
49
  }
52
50
 
53
51
  func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
@@ -59,7 +57,6 @@
59
57
  let hRate = scrollView.bounds.height / size.height
60
58
  let rate = min(wRate, hRate, 1) * 5
61
59
  imageView.frame.size = CGSize(width: size.width * rate, height: size.height * rate)
62
- // contentSize を画像サイズと同じにする
63
60
  scrollView.contentSize = imageView.frame.size
64
61
  }
65
62
  self.dismiss(animated: true)
@@ -69,26 +66,6 @@
69
66
  self.dismiss(animated: true)
70
67
  }
71
68
  }
72
-
73
- // https://qiita.com/tomoyuki_HAYAKAWA/items/d9a2ccb5c76d9c276d1c
74
- extension UserDefaults {
75
- // 保存したいUIImage, 保存するUserDefaults, Keyを取得
76
- func UIImageToData(image: UIImage, forKey: String) {
77
- // UIImageをData型へ変換
78
- let nsdata = image.pngData()
79
- // UserDefaultsへ保存
80
- self.set(nsdata, forKey: forKey)
81
- }
82
- // 参照するUserDefaults, Keyを取得, UIImageを返す
83
- func getImageData(forKey: String) -> UIImage {
84
- // UserDefaultsからKeyを基にData型を参照
85
- let data = self.data(forKey: forKey)
86
- // UIImage型へ変換
87
- let returnImage = UIImage(data: data!)
88
- // UIImageを返す
89
- return returnImage!
90
- }
91
- }
92
69
  ```
93
70
 
94
71
  ```Swift
@@ -96,8 +73,6 @@
96
73
  class MapViewController: UIViewController, UIScrollViewDelegate {
97
74
  var MapImageView = UIImageView()
98
75
  let MapScrollView = UIScrollView()
99
- var screenHeight:CGFloat!
100
- var screenWidth:CGFloat!
101
76
 
102
77
  override func viewDidLoad() {
103
78
  super.viewDidLoad()
@@ -123,10 +98,10 @@
123
98
  }
124
99
  // Buckボタンのアクション
125
100
  @objc private func back(_ sender: Any) {
126
- let storyboard: UIStoryboard = self.storyboard!
101
+ let mapVC = self.navigationController!
127
- let ScrollMapViewController = storyboard.instantiateViewController(withIdentifier: "scrollMap") as! ScrollMapViewController
102
+ let scrollVC = mapVC.viewControllers[mapVC.viewControllers.count-2] as! ScrollMapViewController
128
- ScrollMapViewController.imageView = MapImageView
103
+ scrollVC.imageView = self.MapImageView
129
- // ScrollMapViewController.reSetupImageView()
104
+ scrollVC.reSetupImageView()
130
105
  self.navigationController?.popViewController(animated: true)
131
106
  }
132
107
  ```