Junior — Middle
Kuidas määrata kindlaks aktiivne ViewController rakenduse praeguses kontekstis?
sobes.tech AI
Vastus AI-lt
Et määrata aktiivne (praegu kuvatav) ViewController iOS rakenduses, saate läbida kontrollijate hierarhia, alustades akna juurkontrollijast.
Swiftis näide funktsioonist, mis tagastab praeguse nähtava ViewControlleri:
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
}
See funktsioon kontrollib rekursiivselt:
- Navigatsioonikontroller — tagastab nähtava kontrollija virnas.
- Tabbar-kontroller — tagastab valitud kontrollija.
- Modaalne esitatud kontrollija — tagastab selle.
Lõpuks tagastab see täpselt selle ViewControlleri, mis praegu kasutajale kuvatakse.