私のアプリでは、ユーザーがログインしていない場合は、ナビゲーション コントローラーに埋め込まれたログイン コントローラーが表示されます。ユーザーがログインすると、アプリは他のナビゲーション コントローラーに切り替えてアプリを表示する必要があります。
ユーザーがログインしているときに、ナビゲーション コントローラーを別のナビゲーション コントローラーに切り替えるにはどうすればよいですか。
ありがとう
ユーザーがアプリの代理人としてログインしているかどうかを確認しています:
// 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
最初にメイン ビュー コントローラーを使用してナビゲーション コントローラーを作成し、その上にログイン ナビゲーション コントローラーを表示することも検討できます。その後、ユーザーがログインすると、ログイン ナビゲーション コントローラーを閉じてメイン ビュー コントローラーを表示します。