📌  相关文章
📜  快速转到根视图控制器 - Swift (1)

📅  最后修改于: 2023-12-03 15:09:54.638000             🧑  作者: Mango

快速转到根视图控制器 - Swift

需要在iOS应用程序中返回主屏幕视图控制器吗?或者从任何位置返回第一个视图控制器?让我们看看在Swift中如何快速转到根视图控制器。

使用UIApplication

使用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() // 替换为你的根视图控制器
    }
}
使用UIWindow

如果您不想使用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类,都可以快速转到根视图控制器。如果您只有一个窗口,建议使用第一种方法。如果您有多个窗口,建议使用第二种方法。