2017-08-19 2 views
1


現在、私の考えは次のとおりです: 既存のユーザーが自分のアカウントにログインすると、AuthVC - > MainVCから取得されます。

ユーザーが登録する必要がある場合は、AuthVC - > RegisterVCに進みます。首脳会談の後、彼らはMainVCに連れて行きます。
私が望むのは、ユーザー登録時にMainVCの上に別のVCを提示することです。だからReigsterVC - > MainVCに行きますが、ManVCとやり取りする前に新しいVCがトップにポップアップしてウェルカムメッセージを表示します。
この余分なVCはウェルカムメッセージを表示し、アプリを説明するなど

複数のView Controllerを表示するための最良の方法は? Swift 4

問題は、イムは、私が実際にセグエでこれをやって行くだろうかわからない..私はの線に沿って何かを考えていたということですまたはそれらの線に沿って何か「Registervc =真、その後、現在WelcomeMessageVCからセグエは場合は」...

私が考える他のアイデアはMainVCにウェルカムメッセージを入れていたが、RegisterVCからseguedない限り、隠された - 私が、私はすでにすべての私のVCを作成し、WelcomeMessageVCは別のVCですので、このアイデアを避けたいと思います。

これが機能するには、どのような最善の方法と最も簡単な方法がありますか?

Firebase Authを使用すると、ユーザーが作成されたばかりの場合、WelcomeMessageVCを表示するifステートメント、既存のユーザーがMainVCを表示しているなど、Firebase Authを使用してこれを行うことは可能でしょうか?

おかげで、
ジェレミー

+0

一つの方法 - 多分、他の人が最高の存在ではないが - あなたはそれを持っている方法の流れを維持していることです - 認証>>メインまたは認証>>登録> > Main - Mainにフラグを渡すことを除いて、WelcomeのVCが表示されます。ユーザーがウェルカムVCを歩いたら、それを閉じてメインに戻ります。 – dfd

答えて

1

ウェルカムビューコントローラを作成します。ストーリーボードで、セグを作成して名前を付けます。

ユーザーがウェルカムスクリーンを見たかどうかを追跡するために、ユーザーのデフォルトでブール値を格納します。あなたのビューコントローラのviewWillAppearで

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    showWelcome() 
} 


func showWelcome() { 
    var wasHereBefore = UserDefaults.standard.bool(forKey: "wasHereBefore") 

    // Do we have a value? 
    if wasHereBefore == nil { 
     wasHereBefore = false 
    } 
    if wasHereBefore == false { 
     // Store the value so this only happens once 
     UserDefaults.standard.set(true, forKey: "wasHereBefore") 
     performSegue(withIdentifier: "WelcomeSegue", sender: self) 
    } 
} 
+0

こんにちは、遅い返信を申し訳ありません。私はこれをテストし、それは完全に動作します!ありがとう:) – Jeremy

0

私はこの問題のためにシングルトンを使用しています。 MainVCが常にロードされることを望みますが、ユーザーがログインしているか登録する必要があるかによって異なります。では、ランチャークラスをシングルトンとして作成します。そのクラスを使用してメインビューコントローラを初期化し、ユーザがログインする必要があるかどうかを確認してから、そのビューを呼び出す前に確認します。それが終了すると、そのビューを閉じると、メインビューコントローラが既に初期化されます。また、要件に応じて変更することもできます。

もっと見ると、あなたはそれを感謝しますように願っています。

関連する問題