回答編集履歴
5
コード記述
answer
CHANGED
@@ -41,7 +41,6 @@
|
|
41
41
|
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
42
42
|
if let secondSettingVC = segue.destination as? SecondSettingViewController {
|
43
43
|
secondSettingVC.soundSetting = soundSetting
|
44
|
-
secondSettingVC.soundRate = soundRate
|
45
44
|
secondSettingVC.testdelegate = self // 設定画面のtestdelegateに自身をセット
|
46
45
|
}
|
47
46
|
}
|
4
コード記述
answer
CHANGED
@@ -42,7 +42,7 @@
|
|
42
42
|
if let secondSettingVC = segue.destination as? SecondSettingViewController {
|
43
43
|
secondSettingVC.soundSetting = soundSetting
|
44
44
|
secondSettingVC.soundRate = soundRate
|
45
|
-
secondSettingVC.testdelegate = self // 設定画面のtestdelegateに自身
|
45
|
+
secondSettingVC.testdelegate = self // 設定画面のtestdelegateに自身をセット
|
46
46
|
}
|
47
47
|
}
|
48
48
|
|
3
コード記述
answer
CHANGED
@@ -42,7 +42,7 @@
|
|
42
42
|
if let secondSettingVC = segue.destination as? SecondSettingViewController {
|
43
43
|
secondSettingVC.soundSetting = soundSetting
|
44
44
|
secondSettingVC.soundRate = soundRate
|
45
|
-
secondSettingVC.testdelegate = self //
|
45
|
+
secondSettingVC.testdelegate = self // 設定画面のtestdelegateに自身(pvc)をセット
|
46
46
|
}
|
47
47
|
}
|
48
48
|
|
2
コード記述
answer
CHANGED
@@ -38,6 +38,14 @@
|
|
38
38
|
|
39
39
|
(略)
|
40
40
|
|
41
|
+
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
42
|
+
if let secondSettingVC = segue.destination as? SecondSettingViewController {
|
43
|
+
secondSettingVC.soundSetting = soundSetting
|
44
|
+
secondSettingVC.soundRate = soundRate
|
45
|
+
secondSettingVC.testdelegate = self // デリゲートをセット
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
41
49
|
// testDelegate
|
42
50
|
func test(soundSetting: Int) {
|
43
51
|
for content in contentVCs {
|
1
コード記述
answer
CHANGED
@@ -3,18 +3,19 @@
|
|
3
3
|
今回のように、全体的に値を共有させたいのであれば、渡すのではなく、UserDefalts, AppDelegate, シングルトンなどの方法が適しているとアドバイスを頂いたので、実際はそうしょうと思っていますが、デリゲートも勉強したかったので、プロトコルを使ったdelegateで、設定画面VC、ページ管理VC、コンテンツVCの3カ所でデリゲートを使った値渡しをしてみました。
|
4
4
|
|
5
5
|
razumaさん
|
6
|
-
|
6
|
+
分かりやすい説明のおかげで解決できました。ありがとうございました。
|
7
7
|
|
8
8
|
```
|
9
9
|
■ プロトコル
|
10
10
|
import UIKit
|
11
|
-
|
12
11
|
protocol testDelegate: class {
|
13
12
|
var soundSetting:Int {get set}
|
14
13
|
func test(soundSetting: Int)
|
15
14
|
}
|
16
15
|
|
16
|
+
|
17
17
|
■ 設定画面
|
18
|
+
import UIKit
|
18
19
|
class SecondSettingViewController: UIViewController { // デリゲート処理させるところ
|
19
20
|
|
20
21
|
weak var testdelegate: testDelegate?
|
@@ -30,9 +31,9 @@
|
|
30
31
|
(略)
|
31
32
|
}
|
32
33
|
|
34
|
+
|
33
35
|
■ ページを管理するViewController
|
34
36
|
import UIKit
|
35
|
-
|
36
37
|
class PageViewController: UIPageViewController, UIPageViewControllerDataSource,UIPageViewControllerDelegate, testDelegate { // 継承
|
37
38
|
|
38
39
|
(略)
|
@@ -48,10 +49,10 @@
|
|
48
49
|
(略)
|
49
50
|
}
|
50
51
|
|
52
|
+
|
51
53
|
■ ページングされるコンテツのViewController
|
52
54
|
import UIKit
|
53
55
|
import AVFoundation
|
54
|
-
|
55
56
|
class PageContentViewController: UIViewController, AVAudioPlayerDelegate {
|
56
57
|
|
57
58
|
override func viewDidLoad() {
|