回答編集履歴

1

新しいコードを追加

2018/02/01 06:02

投稿

lovee
lovee

スコア92

test CHANGED
@@ -15,3 +15,85 @@
15
15
 
16
16
 
17
17
  まあやり方はいくらでもありますが、全て設計次第、ですかね…?
18
+
19
+
20
+
21
+ ---
22
+
23
+ 追記
24
+
25
+
26
+
27
+ いただいたコードで書くとこんな感じですかね:
28
+
29
+
30
+
31
+ ```swift
32
+
33
+ // 2つ目のVC
34
+
35
+
36
+
37
+ // dismiss するときにscoreを処理する動作
38
+
39
+ private var onDismissScoreAction: ((_ scores: [String]) -> Void)?
40
+
41
+
42
+
43
+ // OKボタン押したとき
44
+
45
+ private(set) lazy var okButton = UIAlertAction(title: "OK", style: .default, handler: { (action) in
46
+
47
+ self.scores.insert(self.label.text!, at: 0)
48
+
49
+ self.dismiss(animated: true, completion: {
50
+
51
+ // dismiss終わったときにonDismissScoreActionを実行
52
+
53
+ self.onDismissScoreAction?(self.score)
54
+
55
+ })
56
+
57
+ })
58
+
59
+
60
+
61
+
62
+
63
+ // scoreを処理する動作を設定してもらうためのメソッド
64
+
65
+ func setOnDismissScoreAction(_ action: @escaping ([String]) -> Void) {
66
+
67
+ self.onDismissScoreAction = action
68
+
69
+ }
70
+
71
+ ```
72
+
73
+
74
+
75
+ ```swift
76
+
77
+ // 1つ目のVC
78
+
79
+
80
+
81
+ // 遷移用のメソッド
82
+
83
+ func presetn2ndViewController() {
84
+
85
+ //2つ目のVC
86
+
87
+ let controller = ChildViewController()
88
+
89
+ //2つ目のVCから戻ったときに、受け取ったscoreを自分のscoreに追加
90
+
91
+ controller.setOnDismissScoreAction({ [weak self] in self?.score.append(contentsOf: $0) })
92
+
93
+ self.present(controller, animated: true, completion: nil)
94
+
95
+
96
+
97
+ }
98
+
99
+ ```