后,它已经提出了模态另一个视图控制器

问题描述:

考虑应用程序的结构如下恰好视图控制器是什么:后,它已经提出了模态另一个视图控制器

登录屏幕 - >开机画面 - >主要用途( - >注销页面 - >登录屏幕的新实例)

当用户从启动屏幕登录时,我从登录屏幕模态地显示启动屏幕。当启动画面完成任务时,我会从闪屏中以模态方式显示主要使用视图(这是一个UITabController)。如果用户在某个时候决定注销应用程序,我将从主要使用视图中删除凭据并以模态方式显示新的登录屏幕实例。

我最近开始怀疑这是否符合我的预期。假设用户已经一直导航到主要使用,显示控制器(闪屏)和它是呈现视图控制器(登录屏幕)仍然活跃,并存在于层次?在Modally呈现另一个视图控制器后,我期望第一个视图控制器完全被系统卸载和遗忘,就好像它被设置为空。有人能证实这一点吗?如果这不起作用,我应该怎么做,而不是模态地呈现视图控制器?

您的疑惑是有保证的。当您呈现模式视图控制器时,它会在现有视图控制器之上并覆盖它,但现有的视图控制器不会消失。你永远不想在不关闭前一个视图控制器的情况下呈现视图控制器的新副本。 (使用dismiss(animated:completion:)。)

+0

这是否意味着正确的方法是在呈现下一个视图之后关闭当前视图控制器? – Joakim

+0

不,之前,你不能解除视图控制器在当前的视图控制器没有大卫解雇两个。 –