gpt4 book ai didi

ios - 如何从应用程序委托(delegate)获取打开的 View

转载 作者:行者123 更新时间:2023-11-29 05:13:34 27 4
gpt4 key购买 nike

我想在用户退出应用程序时产生一些功能

我在 appDelegate 文件中找到了 applicationDidEnterBackground 函数,但我无法访问现在打开的 View Controller ,因此我无法访问所需的函数我无法使用 instantiateViewController 函数,因为它创建了一个新函数,但我需要存储在已打开的 View 中的信息

有什么方法可以调用已打开的 View Controller 实例的函数???

最佳答案

我有时有类似的要求,所以我使用静态方法创建了 UIViewController 扩展来返回“顶部”viewController。它看起来像这样:

extension UIViewController {

static func topViewController(_ viewController: UIViewController? = nil) -> UIViewController? {
let viewController = viewController ?? UIApplication.shared.keyWindow?.rootViewController
if let navigationController = viewController as? UINavigationController, !navigationController.viewControllers.isEmpty {
return self.topViewController(navigationController.viewControllers.last)
} else if let tabBarController = viewController as? UITabBarController,
let selectedController = tabBarController.selectedViewController {
return self.topViewController(selectedController)
} else if let presentedController = viewController?.presentedViewController {
return self.topViewController(presentedController)
}
return viewController
}

}

这允许您通过调用 let top: UIViewController? 来获取对正在显示的 viewController 的引用。 = UIViewController.topViewController().

关于ios - 如何从应用程序委托(delegate)获取打开的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59430107/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com