Junior — Middle
Kā noteikt aktīvo ViewController pašreizējā lietojumprogrammas kontekstā?
sobes.tech AI
Atbilde no AI
Lai noteiktu aktīvo (pašreiz parādītā) ViewController iOS lietojumprogrammā, varat pārlūkot kontrolieru hierarhiju, sākot no loga saknes kontroliera.
Swift piemērs funkcijai, kas atgriež pašreizējo redzamo ViewController:
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
}
Šī funkcija rekursīvi pārbauda:
- Navigācijas kontrolieris — atgriež redzamo kontrolieri stakā.
- Tabulā kontrolieris — atgriež izvēlēto kontrolieri.
- Modāli parādīto kontrolieri — atgriež to.
Galu galā, tā precīzi atgriež to ViewController, kas pašlaik tiek rādīts lietotājam.