Wie man den obersten (top-most) UIViewController auf dem iOS-Bildschirm erhält?
Hallo zusammen! Ich schreibe meine erste iOS-App in Swift und bin auf ein Problem gestoßen. Ich habe mehrere modale Fenster (UIAlertController, UIImagePickerController und benutzerdefinierte View-Controller), die manchmal übereinander geöffnet werden. Ich muss programmatisch eine Referenz auf den Controller erhalten, der sich gerade ganz oben in der Hierarchie befindet, um zum Beispiel einen neuen Alert anzuzeigen oder zu überprüfen, ob bereits ein modaler Bildschirm geöffnet ist.
Ich habe versucht, `UIApplication.shared.keyWindow?.rootViewController` zu verwenden, aber das liefert nur den Root-Controller, nicht den aktuell sichtbaren. Wenn ich einen modalen Controller öffne, ändert sich rootViewController nicht. Ich habe versucht, rekursiv durch `presentedViewController` zu gehen, aber das funktioniert nicht immer, besonders wenn es einen UINavigationController oder UITabBarController gibt.
Hier ist ein Beispiel meines Codes, der den Controller nicht immer korrekt findet:
```swift
func getTopViewController() -> UIViewController? {
if var topController = UIApplication.shared.keyWindow