質問編集履歴
4
説明文をよりわかりやすく修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -13,14 +13,11 @@
|
|
13
13
|
- Firebaseを使ってユーザー登録を完了したタイミングで、次のページに遷移したい。
|
14
14
|
|
15
15
|
### 発生している問題
|
16
|
-
|
17
|
-
```
|
18
16
|
RegistrationView.swift のページでユーザー情報を入力後、「Sign Up」ボタンを押すと、
|
19
|
-
遷移先のページが一瞬表示されるだけで、また空白のRegistrationView.swift ページ
|
17
|
+
遷移先のページが一瞬表示されるだけで、また空白のRegistrationView.swift ページが表示されてしまいます。
|
20
18
|
↓
|
21
19
|
Firebase Consoleで確認しましたところ、ユーザーの登録情報は
|
22
20
|
Authentification、Firestore Databaseともにちゃんと登録されていました。
|
23
|
-
```
|
24
21
|
|
25
22
|
### ファイル1 AuthViewModel.swift
|
26
23
|
|
3
コードに説明を加えました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -84,6 +84,7 @@
|
|
84
84
|
var body: some View {
|
85
85
|
VStack{
|
86
86
|
|
87
|
+
//以下のProfilePhotoSelectorView()は遷移したいページ先です。
|
87
88
|
NavigationLink(destination: ProfilePhotoSelectorView(),
|
88
89
|
isActive: $viewModel.didAuthenticateUser,
|
89
90
|
label: { })
|
2
記載が漏れていたコード(入力フォーム用のビューについての記述)を追記いたしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -3,9 +3,10 @@
|
|
3
3
|
SwiftUIとFirebaseを使って、Twitterのクローンアプリを作成しています。
|
4
4
|
その過程でユーザー情報の新規登録完了後、次のページに遷移したいのですが、うまくいきません。
|
5
5
|
|
6
|
-
ご参照いただきたいファイルは以下
|
6
|
+
ご参照いただきたいファイルは以下3つです。
|
7
7
|
1.AuthViewModel.swift → Firebaseを使用したユーザー登録のモデル情報
|
8
8
|
2.RegistrationView.swift → ユーザー新規登録Viewページの情報
|
9
|
+
3. CustomInputField.swift → RegistrationViewで使うユーザー入力フォーム
|
9
10
|
|
10
11
|
### 実現したいこと
|
11
12
|
|
@@ -99,22 +100,52 @@
|
|
99
100
|
viewModel.register(withEmail: email, password: password, fullname: fullname, username: username)
|
100
101
|
} label: {
|
101
102
|
Text("Sign Up")
|
102
|
-
.font(.headline)
|
103
|
-
.foregroundColor(.white)
|
104
|
-
.frame(width: 340, height: 50)
|
105
|
-
.background(Color(.systemBlue))
|
106
|
-
.clipShape(Capsule())
|
107
|
-
.padding()
|
108
|
-
}
|
103
|
+
}
|
109
|
-
.shadow(color: .gray.opacity(0.5), radius: 10, x: 0, y:0)
|
110
|
-
|
111
104
|
Spacer()
|
112
105
|
}
|
113
106
|
}
|
114
107
|
}
|
115
108
|
```
|
116
109
|
### RegistrationView.swift のプレビュー画面
|
117
|
-
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-25
|
110
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-29/5f544556-df78-405f-80fe-a438723b5029.png)
|
111
|
+
|
112
|
+
### ファイル3 CustomInputField.swift
|
113
|
+
```Swift
|
114
|
+
import SwiftUI
|
115
|
+
|
116
|
+
struct CustomInputField: View {
|
117
|
+
let imageName: String
|
118
|
+
let placeholderText: String
|
119
|
+
var isSecureField: Bool? = false
|
120
|
+
@Binding var text: String
|
121
|
+
|
122
|
+
var body: some View {
|
123
|
+
VStack{
|
124
|
+
HStack{
|
125
|
+
Image(systemName: imageName)
|
126
|
+
.resizable()
|
127
|
+
.scaledToFit()
|
128
|
+
.frame(width: 20, height: 20)
|
129
|
+
.foregroundColor(Color(.darkGray))
|
130
|
+
|
131
|
+
if isSecureField ?? false {
|
132
|
+
SecureField(placeholderText, text: $text)
|
133
|
+
} else {
|
134
|
+
TextField(placeholderText, text: $text)
|
135
|
+
}
|
136
|
+
}
|
137
|
+
Divider()
|
138
|
+
.background(Color(.darkGray))
|
139
|
+
}
|
140
|
+
}
|
141
|
+
}
|
142
|
+
|
143
|
+
struct CustomInputField_Previews: PreviewProvider {
|
144
|
+
static var previews: some View {
|
145
|
+
CustomInputField(imageName: "envelope", placeholderText: "Email", isSecureField: false, text: .constant(""))
|
146
|
+
}
|
147
|
+
}
|
148
|
+
```
|
118
149
|
|
119
150
|
### 主に試したこと
|
120
151
|
|
1
ユーザーの「ログイン」ではなく、「新規登録」であったため、タイトルの表記を修正しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
【SwiftUI】Firebaseを使っての
|
1
|
+
【SwiftUI】Firebaseを使ってのユーザー登録処理後の自動画面遷移(NavigationLink使用)ができません
|
test
CHANGED
File without changes
|