在视图控制器之间来回切换
segue back and forth between viewcontrollers
我正在我的应用程序中实现单点登录(用户只需登录一次)。
但用户可以根据需要退出。
我将用用例流程解释我的问题。
流量:
- loginViewController -> 用户按下登录 -> 我转到 appNavigationController(HomePageViewController 是 root viewController)
- HomePageViewController -> 用户退出应用程序 -> 我返回登录页面
- 用户重新登录。
现在我有一个问题。
我得到一个错误:
Warning: Attempt to present <app.loginViewController: 0x15d559f00> on <app.homeViewController: 0x15d625660> whose view is not in the window hierarchy!
我不知道这是否是问题所在,但 navigationController
正在保存第一个 homeViewController
而不是清空堆栈
我试图在 viewDidDisappear
中弹出 homeViewController
它没有用,堆栈仍然保存第一个 homeViewController
有什么建议吗?
你的应用中是否只有一个 1 navigationController。我不这么认为。
如果您想要来回进行简单的转场,则应该只有一个 NavigationController。
否则,如果您有 2 个或更多 NavigationController,则需要以编程方式将新的 NavigationController 添加到 window。
您的 ViewController 需要如下所示:
UINavigationController --(rootViewController)--> loginViewController
--(Segue)--> HomePageViewController
或者您可以执行以下操作:
UITabViewController:
viewController1 : loginViewController
viewController2 : UINavigationController --(rootViewController)-->
HomePageViewController
不,用户登录后您可以导航到 viewController2 Tab
并显示 HomePageViewController
一旦用户注销,您可以在 viewController2 Tab
中 popToRootViewController
并切换到 viewController1 Tab
以显示 loginViewController
我正在我的应用程序中实现单点登录(用户只需登录一次)。
但用户可以根据需要退出。
我将用用例流程解释我的问题。
流量:
- loginViewController -> 用户按下登录 -> 我转到 appNavigationController(HomePageViewController 是 root viewController)
- HomePageViewController -> 用户退出应用程序 -> 我返回登录页面
- 用户重新登录。
现在我有一个问题。
我得到一个错误:
Warning: Attempt to present <app.loginViewController: 0x15d559f00> on <app.homeViewController: 0x15d625660> whose view is not in the window hierarchy!
我不知道这是否是问题所在,但 navigationController
正在保存第一个 homeViewController
而不是清空堆栈
我试图在 viewDidDisappear
中弹出 homeViewController
它没有用,堆栈仍然保存第一个 homeViewController
有什么建议吗?
你的应用中是否只有一个 1 navigationController。我不这么认为。 如果您想要来回进行简单的转场,则应该只有一个 NavigationController。
否则,如果您有 2 个或更多 NavigationController,则需要以编程方式将新的 NavigationController 添加到 window。
您的 ViewController 需要如下所示:
UINavigationController --(rootViewController)--> loginViewController --(Segue)--> HomePageViewController
或者您可以执行以下操作:
UITabViewController:
viewController1 : loginViewController
viewController2 : UINavigationController --(rootViewController)--> HomePageViewController
不,用户登录后您可以导航到 viewController2 Tab
并显示 HomePageViewController
一旦用户注销,您可以在 viewController2 Tab
中 popToRootViewController
并切换到 viewController1 Tab
以显示 loginViewController