Junior — Middle
¿Cómo se puede determinar el ViewController activo en el contexto actual de la aplicación?
sobes.tech AI
Respuesta de la IA
Para determinar el ViewController activo (actualmente visible) en una aplicación de iOS, se puede recorrer la jerarquía de controladores, comenzando desde el controlador raíz de la ventana.
Ejemplo de función en Swift que devuelve el ViewController visible actual:
func getVisibleViewController(_ rootViewController: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? {
if let nav = rootViewController as? UINavigationController {
return getVisibleViewController(nav.visibleViewController)
}
if let tab = rootViewController as? UITabBarController {
if let selected = tab.selectedViewController {
return getVisibleViewController(selected)
}
}
if let presented = rootViewController?.presentedViewController {
return getVisibleViewController(presented)
}
return rootViewController
}
Esta función verifica recursivamente:
- Controlador de navegación — devuelve el controlador visible en la pila.
- Controlador de barra de pestañas — devuelve el controlador seleccionado.
- Controlador presentado modalmente — lo devuelve.
Finalmente, devuelve exactamente el ViewController que se muestra actualmente al usuario.