Junior — Middle
Tətbiqin hazırkı kontekstində aktiv ViewController necə müəyyən edilir?
sobes.tech Süni İntellekt
AI-dan cavab
iOS tətbiqində aktiv (hazırda göstərilən) ViewController-i müəyyən etmək üçün, pəncərənin kök controllerindən başlayaraq controllerlər hierarxiyasını keçə bilərsiniz.
Hazırkı görünən ViewController-i qaytaran Swift funksiyası nümunəsi:
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
}
Bu funksiya rekursiv şəkildə yoxlayır:
- Nəzarətçi — stack-də görünən nəzarətçini qaytarır.
- TabBar nəzarətçisi — seçilmiş nəzarətçini qaytarır.
- Modal təqdim olunan nəzarətçi — onu qaytarır.
Nəticədə, hazırda istifadəçiyə göstərilən ViewController-i dəqiq olaraq qaytarır.