我有一个密码viewcontroller,它会在应用程序激活时显示。
我有另一个viewcontroller,只需点击一下按钮即可显示。在这里有一个要显示的过程,一旦它完成就会消失。
场景是:
1)呈现此视图控制器,进程开始。
2)在此过程完成之前,按主页按钮。
3)现在再次打开应用程序。
4)显示密码视图控制器,因为它是必需的。
5)此时在步骤1中开始的过程完成。调用Dismiss方法。但密码视图控制器被取消而不是此过程VC。
如何解雇特定的VC?
**Edit:**
我尝试了另一种方式。当我从appdelegate呈现passcodeVC时,我创建了一个新的导航并将其设置为rootViewController。早期的导航存储在参考中。在这里,我成功保留了密码视图。密码视图现在不被驳回。
当用户输入密码时,我再次将rootviewcontroller更改为old。我认为这会奏效。但是,事实并非如此。 MailVc被解雇了。当我再次尝试呈现mailVC时,它会显示this is already presented.
似乎,因为我更改了rootVC,然后在视图中不存在时调用dissmissVC。 有人可以解释一下这个。
感谢。
答案 0 :(得分:0)
在关闭当前视图控制器之前,您可以测试其类型。如果是kindOfClass
(YourPasswordViewController),请不要忽略它。否则,解雇。
从您执行计算并解除当前UIViewController
的UIViewController,执行以下操作。
获取UINavigationController
的实例。获取viewControllers
财产。它是NSArray
。访问最后一个UIViewController
并测试它是否是PasswordUIViewController的对象。如果是,那就不要理会。 p>