【发布时间】:2015-04-03 12:23:26
【问题描述】:
我有一个密码视图控制器,它总是在应用程序启动时显示。
我有另一个视图控制器,它在单击按钮时显示。在这个过程中,有一个过程要展示,一旦完成,就放弃自己。
场景是:
1) 呈现此视图控制器,进程开始。
2) 在此过程完成之前,请按主页按钮。
3) 现在再次打开应用程序。
4) 显示密码视图控制器,因为它是强制性的。
5) 此时,在步骤 1 中启动的过程完成。调用 Dismiss 方法。但是密码视图控制器被解除,而不是这个过程 VC。
我怎样才能解雇特定的 VC?
**Edit:**
我为此尝试了不同的方法。当我从 appdelegate 提供 passcodeVC 时,我创建了一个新导航并将其设置为 rootViewController。较早的 nav 存储在引用中。在这里,我成功地保持了密码视图。密码视图现在不会关闭。
当用户输入密码时,我将 rootviewcontroller 再次更改为旧的。我认为这会奏效。但是,事实并非如此。 MailVc 被解雇。当我再次尝试展示 mailVC 时,它会显示 this is already presented.
似乎,因为我更改了 rootVC,然后当它不在视图中时调用 dissmissVC。 谁能给我解释一下。
谢谢。
【问题讨论】:
-
您尝试过委托模式吗?也用于不作为控制器出现的过程,或者如果您正在这样做,只需在应用程序进入后台时保存进度并关闭进度控制器
-
是的。我使用委托解决了这个问题。但我想知道编辑后的问题。为什么会这样。当视图不在窗口根目录中并调用关闭时。视图被驳回。但后来当我再次尝试呈现时,它说已经呈现。甚至我创建了该类的新实例来呈现。
-
当你是 root 控制器时,rootVC 已经呈现了视图,所以当你在更改 rootVC 之前再次设置它时,只需关闭进度 VC 或者当应用程序进入后台时告诉你。
标签: ios uinavigationcontroller presentmodalviewcontroller