【发布时间】:2017-12-03 07:05:48
【问题描述】:
我的项目中有一种复杂的模态转场设置。我试图关闭一个视图控制器,另一个视图控制器之前呈现。我正在使用以下代码:
if(self.presentedViewController != nil){
print(self.presentedViewController!)
self.presentedViewController!.dismiss(animated: false)
print(self.presentedViewController!)
}
prints 用于调试目的。他们表明,presentedViewController 实际上并没有关闭。
即使我将animated 设置为false,当调用dismiss 时,我仍然看到应用程序中出现动画。然而,VC实际上并没有被解雇。
有谁知道解决办法吗?
【问题讨论】:
-
您可能想要张贴您的故事板的图片。
-
检查视图控制器是否已被取消初始化的更好方法是
deinit { print("great success") } -
正如 sconewolf 正确提醒我的那样,如果你想关闭呈现的视图控制器,只需执行
dismiss(animated: false),而不是presentedViewController!.dismiss(animated: false)。如果提交的 VC 本身已经提交了其他 VC,则后者将只关闭它提交的那些。通过单独在呈现的 VC 上调用dismiss,这将消除它呈现的任何内容(以及它的孩子)。