回答編集履歴

3

追記

2020/01/05 12:51

投稿

退会済みユーザー
test CHANGED
@@ -15,3 +15,143 @@
15
15
 
16
16
 
17
17
  それと遷移時にということなので遷移させているコード類(遷移元VC/遷移先VC)を載せてください。
18
+
19
+
20
+
21
+ -- 追記 --
22
+
23
+ モーダル遷移ならswitchの状態は初期化されませんので…
24
+
25
+ どのようなことをされているかわからないので、コードを乗せていだけないと回答がむずかしいです。
26
+
27
+
28
+
29
+ ↓でも参考にして頑張ってみてください。
30
+
31
+
32
+
33
+ ![イメージ説明](f7bfe37287c1cc1984a33bc708f9f51d.gif)
34
+
35
+
36
+
37
+ [サンプル](https://github.com/tyobigoro/tUISwitch)
38
+
39
+
40
+
41
+ ```swift
42
+
43
+ import UIKit
44
+
45
+
46
+
47
+ class ViewController: UIViewController {
48
+
49
+
50
+
51
+ @IBOutlet weak var tSwitch: UISwitch!
52
+
53
+
54
+
55
+ var switchStatus: Bool = true {
56
+
57
+ didSet {
58
+
59
+ if oldValue != switchStatus {
60
+
61
+ saveSwitchStatus()
62
+
63
+ }
64
+
65
+ }
66
+
67
+ }
68
+
69
+
70
+
71
+ override func viewDidLoad() {
72
+
73
+ super.viewDidLoad()
74
+
75
+ readSwitchStatus()
76
+
77
+ }
78
+
79
+
80
+
81
+ @IBAction func switchDidTap(_ sender: UISwitch) {
82
+
83
+ switchStatus = sender.isOn
84
+
85
+ }
86
+
87
+
88
+
89
+ @IBAction func transitionBtnDidTap(_ sender: Any) {
90
+
91
+ performSegue(withIdentifier: "Goto2ndVC", sender: nil)
92
+
93
+ }
94
+
95
+
96
+
97
+ @IBAction func backFromSecondVC(segue: UIStoryboardSegue){
98
+
99
+ print("backFrom2ndVC")
100
+
101
+ }
102
+
103
+
104
+
105
+ func saveSwitchStatus() {
106
+
107
+ let ud = UserDefaults.standard
108
+
109
+ ud.set(switchStatus, forKey: "switchStatus")
110
+
111
+ }
112
+
113
+
114
+
115
+ func readSwitchStatus() {
116
+
117
+ let ud = UserDefaults.standard
118
+
119
+ ud.register(defaults: ["switchStatus": true])
120
+
121
+ switchStatus = ud.bool(forKey: "switchStatus")
122
+
123
+ tSwitch.isOn = switchStatus
124
+
125
+ }
126
+
127
+
128
+
129
+ }
130
+
131
+
132
+
133
+ class SeondVC: UIViewController {
134
+
135
+
136
+
137
+ override func viewDidLoad() {
138
+
139
+ super.viewDidLoad()
140
+
141
+ }
142
+
143
+
144
+
145
+ @IBAction func pushReturnBtn(_ sender: Any) {
146
+
147
+ self.dismiss(animated: true, completion: nil)
148
+
149
+ }
150
+
151
+
152
+
153
+ }
154
+
155
+
156
+
157
+ ```

2

編集

2020/01/05 12:51

投稿

退会済みユーザー
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- UISwitchの状態はBool型(true/false)で表されるので基本的にはBool型の値を保存、読み込みしてください
11
+ UISwitchの状態はBool型(true/false)で表されるので基本的にはBool型の値を保存、読み込みしてください。数値で表現したい場合はどの数値のときにonでどの数値のときにoffといったように数値をBOOLに変換して処理してください
12
12
 
13
13
  [UserDefaults データ保存](https://i-app-tec.com/ios/nsuserdefaults.html)
14
14
 

1

追記

2020/01/05 01:07

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,17 @@
1
1
  後ろに遷移元のviewControllerが隠れている遷移の方法の場合は遷移元のviewWiiAppear/viewDidApperが呼ばれませんが、UISwitchの状態は保持されていると思うので、
2
2
 
3
3
  UISwithの状態が保持されていない遷移の場合は、遷移元のviewWillAppear/viewDidAppearの中で、UserDefaultから保存したUISwitchの状態を読み込んで、UISwitchに適用してあげる処理をしてみてください。
4
+
5
+
6
+
7
+ -- 追記 --
8
+
9
+
10
+
11
+ UISwitchはの状態はBool型(true/false)で表されるので基本的にはBool型の値を保存、読み込みしてください
12
+
13
+ [UserDefaults データ保存](https://i-app-tec.com/ios/nsuserdefaults.html)
14
+
15
+
16
+
17
+ それと遷移時にということなので遷移させているコード類(遷移元VC/遷移先VC)を載せてください。