iOS
Operaciones de toda la aplicación
Buscar..
Obtén lo mejor de UIViewController
Un enfoque común para obtener la mayoría de UIViewController
superior es obtener el RootViewController de su UIWindow
activo. Escribí una extensión para esto:
extension UIApplication {
func topViewController(_ base: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController {
if let nav = base as? UINavigationController {
return topViewController(nav.visibleViewController)
}
if let tab = base as? UITabBarController {
if let selected = tab.selectedViewController {
return topViewController(selected)
}
}
if let presented = base?.presentedViewController {
return topViewController(presented)
}
return base!
}
Interceptar eventos del sistema
Usando el NotificationCenter de iOS, que puede ser muy poderoso, puedes interceptar ciertos eventos de toda la aplicación:
NotificationCenter.default.addObserver(
self,
selector: #selector(ViewController.do(_:)),
name: NSNotification.Name.UIApplicationDidBecomeActive,
object: nil)
Puede registrarse para muchos más eventos, solo eche un vistazo a https://developer.apple.com/reference/foundation/nsnotification.name .
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow