teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

13

変更

2018/07/11 00:52

投稿

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

12

変更

2018/07/11 00:52

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -7,7 +7,9 @@
7
7
 
8
8
  ・//blackViewが約0.5秒後に遅れて表示されるので、
9
9
  これをHogeViewControllerから遷移したら遅れることなく既に表示させておきたい。
10
+ その後はもう2度と表示させたくない。
10
11
 
12
+
11
13
  ### 今やっていること
12
14
  HogeViewControllerから下記コード①のHugaViewControllerへ遷移します。
13
15
  viewDidAppear内のblackViewが約0.5秒後に遅れて表示され、

11

変更

2018/07/11 00:51

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -20,9 +20,7 @@
20
20
 
21
21
  var db:Firestore!
22
22
 
23
- var blackView = UIView()
24
23
 
25
-
26
24
  //..省略してます
27
25
 
28
26
 

10

変更

2018/07/11 00:45

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -15,8 +15,14 @@
15
15
 
16
16
  ```ここに言語を入力
17
17
  コード①
18
- //HugaViewController内です
19
18
 
19
+ class HugaViewController: UIViewController {
20
+
21
+ var db:Firestore!
22
+
23
+ var blackView = UIView()
24
+
25
+
20
26
  //..省略してます
21
27
 
22
28
 

9

変更

2018/07/11 00:44

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -20,23 +20,25 @@
20
20
  //..省略してます
21
21
 
22
22
 
23
- override func viewDidAppear(_ animated: Bool) {
23
+ override func viewDidAppear(_ animated: Bool) {
24
24
 
25
-
26
-
27
- //FireStore guard文
25
+ //FireStore guard文
28
- let userRef = db.collection("aaa").document("bbb")
26
+ let userRef = db.collection("aaa").document("bbb")
29
- dataListener = userRef.addSnapshotListener { [unowned self] (docSnapshot, error) in
27
+ dataListener = userRef.addSnapshotListener { [unowned self] (docSnapshot, error) in
30
- guard let docSnapshot = docSnapshot, docSnapshot.exists else {
28
+ guard let docSnapshot = docSnapshot, docSnapshot.exists else {
31
29
 
32
30
 
33
-                         //blackViewを表示
34
- 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)
31
+ //blackViewを表示
32
+ let window = UIApplication.shared.keyWindow
33
+   var blackView = UIView()
34
+   blackView.backgroundColor = UIColor(white: 0, alpha: 0.5)
35
+ blackView.frame = (window?.frame)!
36
+ self.navigationController?.view.addSubview(blackView)
35
37
 
36
38
 
37
39
 
38
- //モーダル遷移
40
+ //モーダル遷移
39
- let modal = FirstViewController(nibName: nil, bundle: nil)
41
+ let modal = FirstViewController(nibName: nil, bundle: nil)
40
42
 
41
43
  let navi = UINavigationController(rootViewController: modal)
42
44
  navi.modalTransitionStyle = .coverVertical
@@ -49,123 +51,16 @@
49
51
  }
50
52
  ```
51
53
  FirstViewControllerからSecondViewControllerへ、
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
-
67
-
68
-
69
-
70
-
71
-
72
-
73
54
  そこから次はThirdViewControllerへとpush遷移し、
74
-
75
-
76
-
77
-
78
-
79
-
80
-
81
-
82
-
83
-
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
-
96
55
  この時db.collection("aaa").document("bbb")へデータが保存される処理をします。
97
56
 
98
-
99
-
100
-
101
-
102
-
103
-
104
-
105
-
106
57
  そしてdissmissでコード①のHugaViewControllerに戻ります。
107
58
 
108
59
  ### 試したこと
109
- コード①の //FireStore guard文 の部分では docSnapshot.existsがelseの時 
110
60
 
111
-
112
-
113
-
114
-
115
-
116
-
117
-
118
-
119
-
120
- //モーダル遷移 は実行できているので、
61
+ コード①の //FireStore guard文 の部分では docSnapshot.existsがelseの時 //モーダル遷移 は実行できているので、
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
-
146
-
147
-
148
-
149
62
  同様にモーダル遷移する前だけblackViewを表示できるのでは?と思いましたが、
150
63
  HugaViewControllerに戻った後も変わらずblackViewは表示されたままです。
151
64
 
152
-
153
-
154
-
155
-
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
-
164
-
165
-
166
-
167
-
168
-
169
-
170
65
  viewWillAppearやviewDidLoadでコード①と同様のコードで試しましたが、
171
66
  (約0.5秒遅れる所や戻った後も表示されるなど)同じ動作になってしまいます。

8

変更

2018/07/11 00:40

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,12 @@
1
1
  ストーリーボード未使用で開発しています。
2
2
 
3
3
  ### 実現したいこと
4
+ ・FirstViewControllerへ遷移する前の1度だけ、
4
- ・FirstViewControllerへ遷移する前の1度だけ、下記コード①の半透明の//blackViewを表示させたい。
5
+ 下記コード①の半透明の//blackViewを表示させたい。
5
6
  その後はもう2度と表示させたくない。
6
7
 
8
+ ・//blackViewが約0.5秒後に遅れて表示されるので、
7
- ・//blackViewが約0.5秒後に遅れて表示されるので、これをHogeViewControllerから遷移したら遅れることなく既に表示させておきたい。
9
+ これをHogeViewControllerから遷移したら遅れることなく既に表示させておきたい。
8
10
 
9
11
  ### 今やっていること
10
12
  HogeViewControllerから下記コード①のHugaViewControllerへ遷移します。
@@ -46,15 +48,124 @@
46
48
  }
47
49
  }
48
50
  ```
49
- FirstViewControllerからSecondViewControllerへ、そこから次はThirdViewControllerへとpush遷移し、この時db.collection("aaa").document("bbb")へデータが保存される処理をします。
51
+ FirstViewControllerからSecondViewControllerへ、
50
52
 
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+ そこから次はThirdViewControllerへとpush遷移し、
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+ この時db.collection("aaa").document("bbb")へデータが保存される処理をします。
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
51
106
  そしてdissmissでコード①のHugaViewControllerに戻ります。
52
107
 
53
108
  ### 試したこと
54
- コード①の //FireStore guard文 の部分では docSnapshot.existsがelseの時 //モーダル遷移 は実行できているので、
109
+ コード①の //FireStore guard文 の部分では docSnapshot.existsがelseの時 
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
+
146
+
147
+
148
+
55
149
  同様にモーダル遷移する前だけblackViewを表示できるのでは?と思いましたが、
56
- HugaViewControllerに戻った後も変わらずblackViewは表示されたままです。viewWillAppearやviewDidLoadでコード①と同様のコードで試しましたが、
150
+ HugaViewControllerに戻った後も変わらずblackViewは表示されたままです。
57
- (約0.5秒遅れる所や戻った後も表示されるなど)同じ動作になってしまいます。
58
151
 
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
59
- ・追記
170
+ viewWillAppearやviewDidLoadでコード①と同様のコードで試しましたが、
60
- xcodeでインデントしのですが、コードが見づらくなってます。申し訳ありません。
171
+ (約0.5秒遅れる所や戻っ後も表示されるど)同じ動作になっています。

7

変更

2018/07/11 00:37

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -54,4 +54,7 @@
54
54
  コード①の //FireStore guard文 の部分では docSnapshot.existsがelseの時 //モーダル遷移 は実行できているので、
55
55
  同様にモーダル遷移する前だけblackViewを表示できるのでは?と思いましたが、
56
56
  HugaViewControllerに戻った後も変わらずblackViewは表示されたままです。viewWillAppearやviewDidLoadでコード①と同様のコードで試しましたが、
57
- (約0.5秒遅れる所や戻った後も表示されるなど)同じ動作になってしまいます。
57
+ (約0.5秒遅れる所や戻った後も表示されるなど)同じ動作になってしまいます。
58
+
59
+ ・追記
60
+ xcodeでインデントしたのですが、コードが見づらくなってます。申し訳ありません。

6

変更

2018/07/10 17:59

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -18,33 +18,33 @@
18
18
  //..省略してます
19
19
 
20
20
 
21
- override func viewDidAppear(_ animated: Bool) {
22
-
23
-
24
-
25
- //FireStore guard文
26
- let userRef = db.collection("aaa").document("bbb")
27
- dataListener = userRef.addSnapshotListener { [unowned self] (docSnapshot, error) in
28
- guard let docSnapshot = docSnapshot, docSnapshot.exists else {
29
-
30
-
31
-             //blackViewを表示
32
- 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)
33
-
34
-
35
-
36
- //モーダル遷移
37
- let modal = FirstViewController(nibName: nil, bundle: nil)
38
-
39
- let navi = UINavigationController(rootViewController: modal)
40
- navi.modalTransitionStyle = .coverVertical
41
- self.present(navi, animated: true, completion: nil)
42
-
43
- return
44
-
45
- }
21
+ override func viewDidAppear(_ animated: Bool) {
22
+
23
+
24
+
25
+ //FireStore guard文
26
+ let userRef = db.collection("aaa").document("bbb")
27
+ dataListener = userRef.addSnapshotListener { [unowned self] (docSnapshot, error) in
28
+ guard let docSnapshot = docSnapshot, docSnapshot.exists else {
29
+
30
+
31
+                         //blackViewを表示
32
+ 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)
33
+
34
+
35
+
36
+ //モーダル遷移
37
+ let modal = FirstViewController(nibName: nil, bundle: nil)
38
+
39
+ let navi = UINavigationController(rootViewController: modal)
40
+ navi.modalTransitionStyle = .coverVertical
41
+ self.present(navi, animated: true, completion: nil)
42
+
43
+ return
44
+
46
45
  }
47
46
  }
47
+ }
48
48
  ```
49
49
  FirstViewControllerからSecondViewControllerへ、そこから次はThirdViewControllerへとpush遷移し、この時db.collection("aaa").document("bbb")へデータが保存される処理をします。
50
50
 

5

変更

2018/07/10 17:58

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -28,9 +28,10 @@
28
28
  guard let docSnapshot = docSnapshot, docSnapshot.exists else {
29
29
 
30
30
 
31
-          //blackViewを表示
32
- 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)
31
+             //blackViewを表示
32
+ 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)
33
33
 
34
+
34
35
 
35
36
  //モーダル遷移
36
37
  let modal = FirstViewController(nibName: nil, bundle: nil)

4

変更

2018/07/10 17:54

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -23,14 +23,13 @@
23
23
 
24
24
 
25
25
  //FireStore guard文
26
- let userRef = db.collection("aaa").document("bbb")
26
+ let userRef = db.collection("aaa").document("bbb")
27
27
  dataListener = userRef.addSnapshotListener { [unowned self] (docSnapshot, error) in
28
28
  guard let docSnapshot = docSnapshot, docSnapshot.exists else {
29
29
 
30
30
 
31
31
           //blackViewを表示
32
- let window = UIApplication.shared.keyWindow var blackView = UIView() blackView.backgroundColor = UIColor(white: 0, alpha: 0.5) blackView.frame = (window?.frame)!
33
- self.navigationController?.view.addSubview(blackView)
32
+ 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)
34
33
 
35
34
 
36
35
  //モーダル遷移

3

変更

2018/07/10 17:53

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- //guard文でelseの時のみ実行
25
+ //FireStore guard文
26
26
  let userRef = db.collection("aaa").document("bbb")
27
27
  dataListener = userRef.addSnapshotListener { [unowned self] (docSnapshot, error) in
28
28
  guard let docSnapshot = docSnapshot, docSnapshot.exists else {
@@ -51,7 +51,7 @@
51
51
  そしてdissmissでコード①のHugaViewControllerに戻ります。
52
52
 
53
53
  ### 試したこと
54
- コード①の//FireStore guard文でelseの時のみ実行 部分では docSnapshot.existsがelseの時 //モーダル遷移は実行できているので、
54
+ コード①の //FireStore guard文 部分では docSnapshot.existsがelseの時 //モーダル遷移 は実行できているので、
55
55
  同様にモーダル遷移する前だけblackViewを表示できるのでは?と思いましたが、
56
56
  HugaViewControllerに戻った後も変わらずblackViewは表示されたままです。viewWillAppearやviewDidLoadでコード①と同様のコードで試しましたが、
57
57
  (約0.5秒遅れる所や戻った後も表示されるなど)同じ動作になってしまいます。

2

変更

2018/07/10 17:52

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -4,7 +4,7 @@
4
4
  ・FirstViewControllerへ遷移する前の1度だけ、下記コード①の半透明の//blackViewを表示させたい。
5
5
  その後はもう2度と表示させたくない。
6
6
 
7
- ・//blackViewが約0.5秒後に遅れて表示されるので、これをHogeViewControllerから遷移したら遅れることなくすぐに表示させたい。
7
+ ・//blackViewが約0.5秒後に遅れて表示されるので、これをHogeViewControllerから遷移したら遅れることなくに表示させておきたい。
8
8
 
9
9
  ### 今やっていること
10
10
  HogeViewControllerから下記コード①のHugaViewControllerへ遷移します。

1

変更

2018/07/10 17:50

投稿

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