質問編集履歴
2
コードを修正しました。
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
|
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
|
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
|
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
|
68
|
+
protocol ViewADelegate : class {
|
56
69
|
}
|
57
70
|
|
58
71
|
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
|
59
72
|
// ViewControllerB
|
60
73
|
import UIKit
|
61
|
-
class
|
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
|
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
|
99
|
+
let viewA = self.storyboard?.instantiateViewController(withIdentifier: "viewA") as! ViewAViewController
|
87
|
-
|
100
|
+
viewA.addressbook.companyInfo = companyInfo
|
88
101
|
}
|
89
102
|
}
|
90
103
|
|
91
104
|
// ViewBDelegate
|
92
|
-
protocol
|
105
|
+
protocol ViewBDelegate : class {
|
93
106
|
}
|
94
107
|
```
|
1
コード修正
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
|
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
|