2016-12-09 15 views
0

私はswift 3、xcode 8、ios10、Firebase devを持っています。プロジェクトとlogin/createuserの流れを構築しようとしています。ユーザーがMAINVIEWで "viewDidAppear" にログインしている場合は、アプリの負荷が私がチェックした場合ならば、サインインビューを扱う方法

  1. MAINVIEW(アプリ)
  2. Loginview
  3. 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 

     } 
} 

答えて

1

- ビュー内のいくつかのコード1新規ユーザーの作成に成功しました。解雇する前に警告を表示することもできます。

これが役立ちますように!

+0

ありがとうございます。私は似たようなバージョンを作ったが、デリゲートを準備中(セグー用)に接続する。私は解き放つセグエのソリューションも持っていました。ありがとう – user2856066

関連する問題