📅  最后修改于: 2023-12-03 15:09:54.638000             🧑  作者: Mango
需要在iOS应用程序中返回主屏幕视图控制器吗?或者从任何位置返回第一个视图控制器?让我们看看在Swift中如何快速转到根视图控制器。
使用UIApplication
类的keyWindow
属性,我们可以获取当前应用程序的顶层window。使用该属性的rootViewController
属性,我们可以获取该window的根视图控制器。然后,我们可以将当前视图控制器替换为它。
if let window = UIApplication.shared.keyWindow {
if let rootViewController = window.rootViewController {
rootViewController.dismiss(animated: false, completion: nil) // 解除任何模态呈现
window.rootViewController = nil // 从window中释放控制器
window.rootViewController = YourRootViewController() // 替换为你的根视图控制器
}
}
如果您不想使用UIApplication
类,可以使用UIWindow
类的windows
属性获取当前应用程序的所有窗口。您可以检查每个窗口的rootViewController
是否存在,然后将其替换为你的根视图控制器。
guard let window = UIApplication.shared.windows.filter({$0.isKeyWindow}).first else {
return
}
if let rootViewController = window.rootViewController {
rootViewController.dismiss(animated: false, completion: nil) // 解除任何模态呈现
window.rootViewController = nil // 从window中释放控制器
window.rootViewController = YourRootViewController() // 替换为你的根视图控制器
}
无论是使用UIApplication
类还是UIWindow
类,都可以快速转到根视图控制器。如果您只有一个窗口,建议使用第一种方法。如果您有多个窗口,建议使用第二种方法。