我在我的项目中有一个比较复杂的模态segue设置。我试图关闭之前呈现的另一个视图控制器。我使用以下代码实现:
if(self.presentedViewController != nil){
print(self.presentedViewController!)
self.presentedViewController!.dismiss(animated: false)
print(self.presentedViewController!)
}
print
用于调试目的。它们显示presentedViewController实际上没有被关闭。
尽管我将animated
设置为false,但当调用dismiss时,我仍然看到应用程序中发生动画。 然而,VC实际上并没有被关闭。
有人知道解决方案吗?
deinit { print("great success") }
。 - lurning too koaddismiss(animated: false)
,而不是presentedViewController!.dismiss(animated: false)
。后者只会关闭它自己所呈现的视图控制器,如果该视图控制器已经呈现了其他视图控制器,这些视图控制器将不会被关闭。通过在呈现视图控制器的VC上调用dismiss
方法,可以关闭所有已经呈现的视图控制器(包括其子视图控制器)。 - Rob