视图控制器在模态呈现另一个视图控制器后会发生什么

时间:2017-01-05 15:53:36

标签: ios presentviewcontroller

考虑应用程序的以下结构:

登录屏幕 - >启动画面 - >主要用途( - >退出页面 - >新登录屏幕实例)

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

我最近开始怀疑这是否符合我的预期。假设用户已经一直导航到主要用途,呈现的视图控制器(启动画面)和呈现视图控制器(登录屏幕)仍然处于活动状态并出现在层次结构中?在模态地呈现另一个视图控制器之后,我希望系统完全卸载和忘记第一个视图控制器,就好像它被设置为空。有人能证实吗?如果这不像我期望的那样工作,我该怎么办而不是模态地呈现视图控制器?

1 个答案:

答案 0 :(得分:0)

你的疑虑是有道理的。当您呈现模态视图控制器时,它将位于现有视图控制器的顶部并覆盖它,但现有的视图控制器不会消失。您永远不想在不解除前一个视图控制器的情况下呈现视图控制器的新副本。 (使用dismiss(animated:completion:)。)