質問編集履歴

4

説明文をよりわかりやすく修正しました。

2022/11/29 11:44

投稿

TOM
TOM

スコア12

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

コードに説明を加えました。

2022/11/29 05:45

投稿

TOM
TOM

スコア12

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

記載が漏れていたコード(入力フォーム用のビューについての記述)を追記いたしました。

2022/11/28 20:17

投稿

TOM
TOM

スコア12

test CHANGED
File without changes
test CHANGED
@@ -3,9 +3,10 @@
3
3
  SwiftUIとFirebaseを使って、Twitterのクローンアプリを作成しています。
4
4
  その過程でユーザー情報の新規登録完了後、次のページに遷移したいのですが、うまくいきません。
5
5
 
6
- ご参照いただきたいファイルは以下2つです。
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/9cb9ec2b-6f98-4263-bd67-ed7adeb49652.png)
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

ユーザーの「ログイン」ではなく、「新規登録」であったため、タイトルの表記を修正しました。

2022/11/25 10:20

投稿

TOM
TOM

スコア12

test CHANGED
@@ -1 +1 @@
1
- 【SwiftUI】Firebaseを使ってのログイン処理後の自動画面遷移(NavigationLink使用)ができません
1
+ 【SwiftUI】Firebaseを使ってのユーザー登録処理後の自動画面遷移(NavigationLink使用)ができません
test CHANGED
File without changes