我的项目中有一种复杂的模态segue设置。我试图解雇一个视图控制器另一个先前介绍的视图控制器。我正在使用此代码:
if(self.presentedViewController != nil){
print(self.presentedViewController!)
self.presentedViewController!.dismiss(animated: false)
print(self.presentedViewController!)
}
Run Code Online (Sandbox Code Playgroud)
该prints为那里进行调试。他们表明presentedViewController实际上并没有关闭。即使将其设置animated为false,当调用dismiss时,我仍会看到应用程序中出现了动画。但是,VC实际上并没有被解雇。有人知道解决方案吗?
苹果
呈现视图控制器负责解散其呈现的视图控制器。如果您在呈现的视图控制器本身上调用此方法,则UIKit会要求呈现的视图控制器处理关闭。
dismiss(animated:completion :)消除由视图控制器以模态形式呈现的视图控制器。
https://developer.apple.com/documentation/uikit/uiviewcontroller/1621505-dismiss
如果您从应用程序的根目录显示视图控制器,例如:
呈现视图控制器
let root = UIApplication.shared.keyWindow!.rootViewController!
root.present(someViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
您可以像这样从显示的视图控制器中将其关闭:
呈现的视图控制器
let root = UIApplication.shared.keyWindow?.rootViewController
root?.dismiss(animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4049 次 |
| 最近记录: |