質問編集履歴

13

変更

2018/07/11 00:52

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- UIViewを半透明のビューとして1度だけ表示したい
1
+ UIViewを半透明のビューとして1度だけ表示し、その後2度と表示させくな
test CHANGED
File without changes

12

変更

2018/07/11 00:52

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -15,6 +15,10 @@
15
15
  ・//blackViewが約0.5秒後に遅れて表示されるので、
16
16
 
17
17
  これをHogeViewControllerから遷移したら遅れることなく既に表示させておきたい。
18
+
19
+ その後はもう2度と表示させたくない。
20
+
21
+
18
22
 
19
23
 
20
24
 

11

変更

2018/07/11 00:51

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -39,10 +39,6 @@
39
39
 
40
40
 
41
41
  var db:Firestore!
42
-
43
-
44
-
45
- var blackView = UIView()
46
42
 
47
43
 
48
44
 

10

変更

2018/07/11 00:45

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -32,7 +32,19 @@
32
32
 
33
33
  コード①
34
34
 
35
+
36
+
35
- //HugaViewController内です
37
+ class HugaViewController: UIViewController {
38
+
39
+
40
+
41
+ var db:Firestore!
42
+
43
+
44
+
45
+ var blackView = UIView()
46
+
47
+
36
48
 
37
49
 
38
50
 

9

変更

2018/07/11 00:44

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -42,29 +42,33 @@
42
42
 
43
43
 
44
44
 
45
- override func viewDidAppear(_ animated: Bool) {
45
+ override func viewDidAppear(_ animated: Bool) {
46
46
 
47
47
 
48
48
 
49
-
49
+ //FireStore guard文
50
50
 
51
-
51
+ let userRef = db.collection("aaa").document("bbb")
52
52
 
53
- //FireStore guard文
53
+ dataListener = userRef.addSnapshotListener { [unowned self] (docSnapshot, error) in
54
54
 
55
- let userRef = db.collection("aaa").document("bbb")
56
-
57
- dataListener = userRef.addSnapshotListener { [unowned self] (docSnapshot, error) in
58
-
59
- guard let docSnapshot = docSnapshot, docSnapshot.exists else {
55
+ guard let docSnapshot = docSnapshot, docSnapshot.exists else {
60
56
 
61
57
 
62
58
 
63
59
 
64
60
 
65
-                         //blackViewを表示
61
+ //blackViewを表示
66
62
 
67
- let window = UIApplication.shared.keyWindow var blackView = UIView() blackView.backgroundColor = UIColor(white: 0, alpha: 0.5) blackView.frame = (window?.frame)! self.navigationController?.view.addSubview(blackView)
63
+ let window = UIApplication.shared.keyWindow
64
+
65
+   var blackView = UIView()
66
+
67
+   blackView.backgroundColor = UIColor(white: 0, alpha: 0.5)
68
+
69
+ blackView.frame = (window?.frame)!
70
+
71
+ self.navigationController?.view.addSubview(blackView)
68
72
 
69
73
 
70
74
 
@@ -72,9 +76,9 @@
72
76
 
73
77
 
74
78
 
75
- //モーダル遷移
79
+ //モーダル遷移
76
80
 
77
- let modal = FirstViewController(nibName: nil, bundle: nil)
81
+ let modal = FirstViewController(nibName: nil, bundle: nil)
78
82
 
79
83
 
80
84
 
@@ -100,111 +104,9 @@
100
104
 
101
105
  FirstViewControllerからSecondViewControllerへ、
102
106
 
103
-
104
-
105
-
106
-
107
-
108
-
109
-
110
-
111
-
112
-
113
-
114
-
115
-
116
-
117
-
118
-
119
-
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
-
130
-
131
-
132
-
133
-
134
-
135
-
136
-
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
107
  そこから次はThirdViewControllerへとpush遷移し、
146
108
 
147
-
148
-
149
-
150
-
151
-
152
-
153
-
154
-
155
-
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
-
164
-
165
-
166
-
167
-
168
-
169
-
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
-
178
-
179
-
180
-
181
-
182
-
183
-
184
-
185
-
186
-
187
-
188
-
189
-
190
-
191
109
  この時db.collection("aaa").document("bbb")へデータが保存される処理をします。
192
-
193
-
194
-
195
-
196
-
197
-
198
-
199
-
200
-
201
-
202
-
203
-
204
-
205
-
206
-
207
-
208
110
 
209
111
 
210
112
 
@@ -214,85 +116,9 @@
214
116
 
215
117
  ### 試したこと
216
118
 
217
- コード①の //FireStore guard文 の部分では docSnapshot.existsがelseの時 
218
119
 
219
120
 
220
-
221
-
222
-
223
-
224
-
225
-
226
-
227
-
228
-
229
-
230
-
231
-
232
-
233
-
234
-
235
-
236
-
237
-
238
-
239
- //モーダル遷移 は実行できているので、
121
+ コード①の //FireStore guard文 の部分では docSnapshot.existsがelseの時 //モーダル遷移 は実行できているので、
240
-
241
-
242
-
243
-
244
-
245
-
246
-
247
-
248
-
249
-
250
-
251
-
252
-
253
-
254
-
255
-
256
-
257
-
258
-
259
-
260
-
261
-
262
-
263
-
264
-
265
-
266
-
267
-
268
-
269
-
270
-
271
-
272
-
273
-
274
-
275
-
276
-
277
-
278
-
279
-
280
-
281
-
282
-
283
-
284
-
285
-
286
-
287
-
288
-
289
-
290
-
291
-
292
-
293
-
294
-
295
-
296
122
 
297
123
  同様にモーダル遷移する前だけblackViewを表示できるのでは?と思いましたが、
298
124
 
@@ -300,42 +126,6 @@
300
126
 
301
127
 
302
128
 
303
-
304
-
305
-
306
-
307
-
308
-
309
-
310
-
311
-
312
-
313
-
314
-
315
-
316
-
317
-
318
-
319
-
320
-
321
-
322
-
323
-
324
-
325
-
326
-
327
-
328
-
329
-
330
-
331
-
332
-
333
-
334
-
335
-
336
-
337
-
338
-
339
129
  viewWillAppearやviewDidLoadでコード①と同様のコードで試しましたが、
340
130
 
341
131
  (約0.5秒遅れる所や戻った後も表示されるなど)同じ動作になってしまいます。

8

変更

2018/07/11 00:40

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -4,13 +4,17 @@
4
4
 
5
5
  ### 実現したいこと
6
6
 
7
+ ・FirstViewControllerへ遷移する前の1度だけ、
8
+
7
- ・FirstViewControllerへ遷移する前の1度だけ、下記コード①の半透明の//blackViewを表示させたい。
9
+ 下記コード①の半透明の//blackViewを表示させたい。
8
10
 
9
11
  その後はもう2度と表示させたくない。
10
12
 
11
13
 
12
14
 
15
+ ・//blackViewが約0.5秒後に遅れて表示されるので、
16
+
13
- ・//blackViewが約0.5秒後に遅れて表示されるので、これをHogeViewControllerから遷移したら遅れることなく既に表示させておきたい。
17
+ これをHogeViewControllerから遷移したら遅れることなく既に表示させておきたい。
14
18
 
15
19
 
16
20
 
@@ -94,7 +98,113 @@
94
98
 
95
99
  ```
96
100
 
101
+ FirstViewControllerからSecondViewControllerへ、
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+ そこから次はThirdViewControllerへとpush遷移し、
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
97
- FirstViewControllerからSecondViewControllerへ、そから次はThirdViewControllerへとpush遷移し、この時db.collection("aaa").document("bbb")へデータが保存される処理をします。
191
+ この時db.collection("aaa").document("bbb")へデータが保存される処理をします。
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
98
208
 
99
209
 
100
210
 
@@ -104,16 +214,128 @@
104
214
 
105
215
  ### 試したこと
106
216
 
107
- コード①の //FireStore guard文 の部分では docSnapshot.existsがelseの時 //モーダル遷移 は実行できているので、
217
+ コード①の //FireStore guard文 の部分では docSnapshot.existsがelseの時 
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+ //モーダル遷移 は実行できているので、
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
108
296
 
109
297
  同様にモーダル遷移する前だけblackViewを表示できるのでは?と思いましたが、
110
298
 
111
- HugaViewControllerに戻った後も変わらずblackViewは表示されたままです。viewWillAppearやviewDidLoadでコード①と同様のコードで試しましたが、
299
+ HugaViewControllerに戻った後も変わらずblackViewは表示されたままです。
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+
339
+ viewWillAppearやviewDidLoadでコード①と同様のコードで試しましたが、
112
340
 
113
341
  (約0.5秒遅れる所や戻った後も表示されるなど)同じ動作になってしまいます。
114
-
115
-
116
-
117
- ・追記
118
-
119
- xcodeでインデントしたのですが、コードが見づらくなってます。申し訳ありません。

7

変更

2018/07/11 00:37

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -111,3 +111,9 @@
111
111
  HugaViewControllerに戻った後も変わらずblackViewは表示されたままです。viewWillAppearやviewDidLoadでコード①と同様のコードで試しましたが、
112
112
 
113
113
  (約0.5秒遅れる所や戻った後も表示されるなど)同じ動作になってしまいます。
114
+
115
+
116
+
117
+ ・追記
118
+
119
+ xcodeでインデントしたのですが、コードが見づらくなってます。申し訳ありません。

6

変更

2018/07/10 17:59

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -38,59 +38,59 @@
38
38
 
39
39
 
40
40
 
41
- override func viewDidAppear(_ animated: Bool) {
41
+ override func viewDidAppear(_ animated: Bool) {
42
42
 
43
-
43
+
44
44
 
45
+
45
46
 
47
+
46
48
 
49
+ //FireStore guard文
47
50
 
51
+ let userRef = db.collection("aaa").document("bbb")
48
52
 
49
- //FireStore guard文
53
+ dataListener = userRef.addSnapshotListener { [unowned self] (docSnapshot, error) in
50
54
 
51
- let userRef = db.collection("aaa").document("bbb")
55
+ guard let docSnapshot = docSnapshot, docSnapshot.exists else {
52
56
 
53
- dataListener = userRef.addSnapshotListener { [unowned self] (docSnapshot, error) in
57
+
54
58
 
55
- guard let docSnapshot = docSnapshot, docSnapshot.exists else {
59
+
56
60
 
61
+                         //blackViewを表示
57
62
 
63
+ let window = UIApplication.shared.keyWindow var blackView = UIView() blackView.backgroundColor = UIColor(white: 0, alpha: 0.5) blackView.frame = (window?.frame)! self.navigationController?.view.addSubview(blackView)
58
64
 
59
-
65
+
60
66
 
61
-             //blackViewを表示
67
+
62
68
 
63
- let window = UIApplication.shared.keyWindow var blackView = UIView() blackView.backgroundColor = UIColor(white: 0, alpha: 0.5) blackView.frame = (window?.frame)! self.navigationController?.view.addSubview(blackView)
69
+
64
70
 
71
+ //モーダル遷移
65
72
 
73
+ let modal = FirstViewController(nibName: nil, bundle: nil)
66
74
 
75
+
67
76
 
77
+ let navi = UINavigationController(rootViewController: modal)
68
78
 
69
-
79
+ navi.modalTransitionStyle = .coverVertical
70
80
 
71
- //モーダル遷移
81
+ self.present(navi, animated: true, completion: nil)
72
82
 
73
- let modal = FirstViewController(nibName: nil, bundle: nil)
83
+
74
84
 
75
-
85
+ return
76
86
 
77
- let navi = UINavigationController(rootViewController: modal)
87
+
78
-
79
- navi.modalTransitionStyle = .coverVertical
80
-
81
- self.present(navi, animated: true, completion: nil)
82
-
83
-
84
-
85
- return
86
-
87
-
88
-
89
- }
90
88
 
91
89
  }
92
90
 
93
91
  }
92
+
93
+ }
94
94
 
95
95
  ```
96
96
 

5

変更

2018/07/10 17:58

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -58,9 +58,11 @@
58
58
 
59
59
 
60
60
 
61
-          //blackViewを表示
61
+             //blackViewを表示
62
62
 
63
- let window = UIApplication.shared.keyWindow var blackView = UIView() blackView.backgroundColor = UIColor(white: 0, alpha: 0.5) blackView.frame = (window?.frame)! self.navigationController?.view.addSubview(blackView)
63
+ let window = UIApplication.shared.keyWindow var blackView = UIView() blackView.backgroundColor = UIColor(white: 0, alpha: 0.5) blackView.frame = (window?.frame)! self.navigationController?.view.addSubview(blackView)
64
+
65
+
64
66
 
65
67
 
66
68
 

4

変更

2018/07/10 17:54

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  //FireStore guard文
50
50
 
51
- let userRef = db.collection("aaa").document("bbb")
51
+ let userRef = db.collection("aaa").document("bbb")
52
52
 
53
53
  dataListener = userRef.addSnapshotListener { [unowned self] (docSnapshot, error) in
54
54
 
@@ -60,9 +60,7 @@
60
60
 
61
61
           //blackViewを表示
62
62
 
63
- let window = UIApplication.shared.keyWindow var blackView = UIView() blackView.backgroundColor = UIColor(white: 0, alpha: 0.5) blackView.frame = (window?.frame)!
64
-
65
- self.navigationController?.view.addSubview(blackView)
63
+ let window = UIApplication.shared.keyWindow var blackView = UIView() blackView.backgroundColor = UIColor(white: 0, alpha: 0.5) blackView.frame = (window?.frame)! self.navigationController?.view.addSubview(blackView)
66
64
 
67
65
 
68
66
 

3

変更

2018/07/10 17:53

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
 
48
48
 
49
- //guard文でelseの時のみ実行
49
+ //FireStore guard文
50
50
 
51
51
  let userRef = db.collection("aaa").document("bbb")
52
52
 
@@ -104,7 +104,7 @@
104
104
 
105
105
  ### 試したこと
106
106
 
107
- コード①の//FireStore guard文でelse時のみ実行 部分では docSnapshot.existsがelseの時 //モーダル遷移は実行できているので、
107
+ コード①の //FireStore guard文 の部分では docSnapshot.existsがelseの時 //モーダル遷移 は実行できているので、
108
108
 
109
109
  同様にモーダル遷移する前だけblackViewを表示できるのでは?と思いましたが、
110
110
 

2

変更

2018/07/10 17:52

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- ・//blackViewが約0.5秒後に遅れて表示されるので、これをHogeViewControllerから遷移したら遅れることなくすぐに表示させたい。
13
+ ・//blackViewが約0.5秒後に遅れて表示されるので、これをHogeViewControllerから遷移したら遅れることなくに表示させておきたい。
14
14
 
15
15
 
16
16
 

1

変更

2018/07/10 17:50

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,12 +1,40 @@
1
- ```ここに言語を入力
1
+ ストーリーボード未使用で開発しています。
2
2
 
3
3
 
4
4
 
5
+ ### 実現したいこと
6
+
7
+ ・FirstViewControllerへ遷移する前の1度だけ、下記コード①の半透明の//blackViewを表示させたい。
8
+
9
+ その後はもう2度と表示させたくない。
10
+
11
+
12
+
13
+ ・//blackViewが約0.5秒後に遅れて表示されるので、これをHogeViewControllerから遷移したら遅れることなくすぐに表示させたい。
14
+
15
+
16
+
17
+ ### 今やっていること
18
+
19
+ HogeViewControllerから下記コード①のHugaViewControllerへ遷移します。
20
+
21
+ viewDidAppear内のblackViewが約0.5秒後に遅れて表示され、
22
+
23
+ そのあとにFirstViewControllerへモーダル遷移します。
24
+
25
+
26
+
27
+ ```ここに言語を入力
28
+
29
+ コード①
30
+
5
- //HogeViewController内です
31
+ //HugaViewController内です
6
32
 
7
33
 
8
34
 
9
35
  //..省略してます
36
+
37
+
10
38
 
11
39
 
12
40
 
@@ -18,13 +46,21 @@
18
46
 
19
47
 
20
48
 
21
- let window = UIApplication.shared.keyWindow
49
+ //guard文でelseの時のみ実行
22
50
 
23
- var blackView = UIView()
51
+ let userRef = db.collection("aaa").document("bbb")
24
52
 
25
- blackView.backgroundColor = UIColor(white: 0, alpha: 0.5)
53
+ dataListener = userRef.addSnapshotListener { [unowned self] (docSnapshot, error) in
26
54
 
27
- blackView.frame = (window?.frame)!
55
+ guard let docSnapshot = docSnapshot, docSnapshot.exists else {
56
+
57
+
58
+
59
+
60
+
61
+          //blackViewを表示
62
+
63
+ let window = UIApplication.shared.keyWindow var blackView = UIView() blackView.backgroundColor = UIColor(white: 0, alpha: 0.5) blackView.frame = (window?.frame)!
28
64
 
29
65
  self.navigationController?.view.addSubview(blackView)
30
66
 
@@ -32,7 +68,7 @@
32
68
 
33
69
 
34
70
 
35
-
71
+ //モーダル遷移
36
72
 
37
73
  let modal = FirstViewController(nibName: nil, bundle: nil)
38
74
 
@@ -57,3 +93,21 @@
57
93
  }
58
94
 
59
95
  ```
96
+
97
+ FirstViewControllerからSecondViewControllerへ、そこから次はThirdViewControllerへとpush遷移し、この時db.collection("aaa").document("bbb")へデータが保存される処理をします。
98
+
99
+
100
+
101
+ そしてdissmissでコード①のHugaViewControllerに戻ります。
102
+
103
+
104
+
105
+ ### 試したこと
106
+
107
+ コード①の//FireStore guard文でelseの時のみ実行 部分では docSnapshot.existsがelseの時 //モーダル遷移は実行できているので、
108
+
109
+ 同様にモーダル遷移する前だけblackViewを表示できるのでは?と思いましたが、
110
+
111
+ HugaViewControllerに戻った後も変わらずblackViewは表示されたままです。viewWillAppearやviewDidLoadでコード①と同様のコードで試しましたが、
112
+
113
+ (約0.5秒遅れる所や戻った後も表示されるなど)同じ動作になってしまいます。