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

質問編集履歴

2

コードを修正しました。

2019/11/21 02:09

投稿

hameji
hameji

スコア1380

title CHANGED
File without changes
body CHANGED
@@ -20,10 +20,12 @@
20
20
  橋渡しすればできますか???
21
21
  -> 試してみましたが、できませんでした。
22
22
 
23
+ 追伸、サンプルコードかなりアバウトに書いてて、間違ってました。修正しました。
24
+
23
25
  ```Swift
24
26
  struct AddressBook {
25
27
  let user: String
26
- let companyInfo: CompanyInfo
28
+ let companyInfo: CompanyInfo?
27
29
  }
28
30
 
29
31
  strunt CompanyInfo {
@@ -35,30 +37,41 @@
35
37
  //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
36
38
  // ViewControllerA
37
39
  import UIKit
38
- class ViewControllerA: UIViewController {
40
+ class ViewAViewController: UIViewController {
39
41
  private let viewAPresenter = viewAPresenter()
42
+ var addressBook: AddressBook = AddressBook(user: "田中太郎", companyInfo: nil)
43
+ }
40
44
  override func viewDidLoad() {
41
45
  self.viewAPresenter.viewA = self
42
46
  }
47
+
48
+ override func viewWillAppear(_ animated: Bool) {
49
+ self.viewAPresenter.viewWillAppear(data: addressBook)
50
+ }
43
51
  }
44
- extention ViewContorllerA: ViewDelegate {
52
+ extention ViewAViewContorller: ViewDelegate {
45
53
  }
46
54
 
47
55
  // ViewAPresenter
48
56
  import Foundation
49
57
  class ViewAPresenter {
50
58
  weak var ViewA: AddHospitalDelegate?
51
- var addressBook: AddressBook = AddressBook()
59
+ var addressBook: AddressBook!
60
+
61
+ func viewWillAppear(data: AddressBook) {
62
+ self.addressBook = data
63
+ print(self.addressBook)
64
+ }
52
65
  }
53
66
 
54
67
  // ViewADelegate
55
- protocol ViewAPresenter : class {
68
+ protocol ViewADelegate : class {
56
69
  }
57
70
 
58
71
  //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
59
72
  // ViewControllerB
60
73
  import UIKit
61
- class ViewControllerB: UIViewController {
74
+ class ViewBViewController: UIViewController {
62
75
  private let viewBPresenter = viewBPresenter()
63
76
  override func viewDidLoad() {
64
77
  self.viewBPresenter.viewB = self
@@ -69,26 +82,26 @@
69
82
  }
70
83
  }
71
84
 
72
- extention ViewContorllerB: ViewDelegate {
85
+ extention ViewBViewContorller: ViewDelegate {
73
86
  }
74
87
 
75
88
  // ViewBPresenter
76
89
  import Foundation
77
90
  class ViewBPresenter {
78
91
  weak var ViewB: AddHospitalDelegate?
79
- var companyInfo:CompanyInfo = CompanyInfo()
92
+ var companyInfo:CompanyInfo = CompanyInfo(name: "A会社", address: "B県C市", tel: "0XX-XXX-XXXX")
80
93
 
81
94
  func viewWillDisappear() {
82
95
  // 下記ダメでした
83
96
  let viewAPresenter = ViewAPresenter()
84
97
  viewAPresenter.Addressbook.companyInfo = companyInfo
85
98
  // 下記もダメでした
86
- let viewAPresenter = self.storyboard?.instantiateViewController(withIdentifier: "viewA") as! ViewAViewController
99
+ let viewA = self.storyboard?.instantiateViewController(withIdentifier: "viewA") as! ViewAViewController
87
- viewAPresenter.addressbook.companyInfo = companyInfo
100
+ viewA.addressbook.companyInfo = companyInfo
88
101
  }
89
102
  }
90
103
 
91
104
  // ViewBDelegate
92
- protocol ViewBPresenter : class {
105
+ protocol ViewBDelegate : class {
93
106
  }
94
107
  ```

1

コード修正

2019/11/21 02:09

投稿

hameji
hameji

スコア1380

title CHANGED
File without changes
body CHANGED
@@ -48,7 +48,7 @@
48
48
  import Foundation
49
49
  class ViewAPresenter {
50
50
  weak var ViewA: AddHospitalDelegate?
51
- var AddressBook
51
+ var addressBook: AddressBook = AddressBook()
52
52
  }
53
53
 
54
54
  // ViewADelegate
@@ -63,7 +63,12 @@
63
63
  override func viewDidLoad() {
64
64
  self.viewBPresenter.viewB = self
65
65
  }
66
+
67
+ override func viewWillDisappear(_ animated: Bool) {
68
+ self.viewBPresenter.viewWillDisappear()
69
+ }
66
70
  }
71
+
67
72
  extention ViewContorllerB: ViewDelegate {
68
73
  }
69
74
 
@@ -71,7 +76,16 @@
71
76
  import Foundation
72
77
  class ViewBPresenter {
73
78
  weak var ViewB: AddHospitalDelegate?
74
- var CompanyInfo:CompanyInfo
79
+ var companyInfo:CompanyInfo = CompanyInfo()
80
+
81
+ func viewWillDisappear() {
82
+ // 下記ダメでした
83
+ let viewAPresenter = ViewAPresenter()
84
+ viewAPresenter.Addressbook.companyInfo = companyInfo
85
+ // 下記もダメでした
86
+ let viewAPresenter = self.storyboard?.instantiateViewController(withIdentifier: "viewA") as! ViewAViewController
87
+ viewAPresenter.addressbook.companyInfo = companyInfo
88
+ }
75
89
  }
76
90
 
77
91
  // ViewBDelegate