ストーリーボードには複数のUINavigationControllerスタックがあります。たとえば、LoginViewControllerスタックはスタックから完全に分離されていSWRevealViewControllerます。
それらを切り替えるためのベストプラクティスは何ですか? ログアウト ボタンを押して (ログアウト ボタンはSWRevealControllerスタック上にあります)、LoginViewController スタックを表示しようとすると、次のようなエラーが発生します。
Warning: Attempt to present LoginViewController on SWRevealViewController whose view is not in the window hierarchy!
私は特にself.window.rootViewControllerLogin View ControllerのUINavigationControllerApp Delegateに次のように設定していますが:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Spitfire" bundle:nil];
UINavigationController *nav = [storyboard instantiateViewControllerWithIdentifier:@"LoginNavigationController"];
LoginViewController *loginVC = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
self.window.rootViewController = nav;
[nav presentViewController:loginVC animated:NO completion:nil];
現在のスタックを「破棄」しUINavigationControllerて新しいスタックを使用する方法はありますか? それとも、アプリのデリゲートでこのコードを呼び出すべきではないでしょうか?