私はswift 3、xcode 8、ios10、Firebase devを持っています。プロジェクトとlogin/createuserの流れを構築しようとしています。ユーザーがMAINVIEWで "viewDidAppear" にログインしている場合は、アプリの負荷が私がチェックした場合ならば、サインインビューを扱う方法
- MAINVIEW(アプリ)
- Loginview
- Createuserview
- 私は3景色を眺めることができます私はLoginViewを開いていません。ユーザーがビュー2からビュー3に移動し、ユーザーアカウントを作成すると、ビュー2を閉じる(閉じる)ことはできません。ビュー1の「viewDidAppear」を取得し、ユーザーがログインしているかどうかを確認します。
useraccountが正しく作成されサインインされていますが、ビュー2とビュー3を閉じてビュー1(メインビュー)を開くことはできません。メインビューが開かれている場合は、ユーザーがサインインしているかどうかをチェックして、非同期では難しいビュー2(ログイン)アージンを開かないようにする必要があります。プログラミング。
何か助けていただきありがとうございます。私は本当にここで立ち往生しています。 2
protocol NewUserCreatedSuccessProtocol {
func userCreatedSuccessAndReturn(user : FirebaseUser)
}
class CreateUserview {
var delegate : NewUserCreatedSuccessProtocol! = nil
func handleSignUp() {
if delegate != nil {
self.dismiss(animated: true, completion: nil)
self.delegate.userCreatedSuccessAndReturn(user: Insert())
}
}
}
extension LoginView : NewUserCreatedSuccessProtocol {
func userCreatedSuccessAndReturn(user : FirebaseUser) {
self.dismiss(animated: true, completion: nil)
}
}
あなたがの両方から解任することができますこの方法を見るために取り戻すために、デリゲートメソッドを発射Createuserview:首尾よく見る3で新しいユーザーを作成した後
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
print("*** viewDidAppear ***")
if FIRAuth.auth()?.currentUser != nil {
print("CHECK - USER LOGGED IN")
} else {
print("CHECK - USER LOGGED OUT")
self.performSegue(withIdentifier: "segueLogin", sender: nil)
return
}
}
ありがとうございます。私は似たようなバージョンを作ったが、デリゲートを準備中(セグー用)に接続する。私は解き放つセグエのソリューションも持っていました。ありがとう – user2856066