Junior — Middle
Cum se poate determina ViewController-ul activ în contextul actual al aplicației?
sobes.tech AI
Răspuns de la AI
Pentru a determina ViewController-ul activ (cel curent vizibil) într-o aplicație iOS, puteți parcurge ierarhia controlerelor, începând cu controlerul rădăcină al ferestrei.
Exemplu de funcție în Swift care returnează ViewController-ul vizibil curent:
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
}
Această funcție verifică recursiv:
- Controler de navigație — returnează controlerul vizibil din stivă.
- Controler de tab-uri — returnează controlerul selectat.
- Controler prezentat modal — îl returnează.
În final, returnează exact ViewController-ul care este afișat în prezent utilizatorului.