iOS 2つのナビゲーションコントローラーを切り替える 質問する

iOS 2つのナビゲーションコントローラーを切り替える 質問する

私のアプリでは、ユーザーがログインしていない場合は、ナビゲーション コントローラーに埋め込まれたログイン コントローラーが表示されます。ユーザーがログインすると、アプリは他のナビゲーション コントローラーに切り替えてアプリを表示する必要があります。

ユーザーがログインしているときに、ナビゲーション コントローラーを別のナビゲーション コントローラーに切り替えるにはどうすればよいですか。

ありがとう

ここに画像の説明を入力してください

ユーザーがアプリの代理人としてログインしているかどうかを確認しています:

 // Check if user is log
    let currentUser = PFUser.currentUser()
    if currentUser != nil {
        // Do stuff with the user
    } else {
        // Show the signup or login screen
        let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let nav = mainStoryboardIpad.instantiateViewControllerWithIdentifier("LogInController") as! UINavigationController
        self.window?.rootViewController = nav
    }

解決策: うまくいくようです
ユーザーがログインボタンを押すと:

let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let nav = mainStoryboardIpad.instantiateViewControllerWithIdentifier("MainNavController") as! UINavigationController
    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    appDelegate.window?.rootViewController = nav

ベストアンサー1

解決策1

1 つの解決策は、ナビゲーション コントローラーを 1 つだけ使用することです。ユーザーがログインすると、ログインに使用されたすべてのビュー コントローラーがポップされ、メイン ビュー コントローラーがスタックにプッシュされます。

解決策2

あるいは、メイン コントローラーをルートとして、ログイン要素の上に新しいナビゲーション コントローラーをモーダルで表示することもできます。その上に表示されるだけです。

解決策3

最初にメイン ビュー コントローラーを使用してナビゲーション コントローラーを作成し、その上にログイン ナビゲーション コントローラーを表示することも検討できます。その後、ユーザーがログインすると、ログイン ナビゲーション コントローラーを閉じてメイン ビュー コントローラーを表示します。

おすすめ記事