Sobes.tech
Junior — Middle

Uygulamanın mevcut bağlamında aktif ViewController nasıl belirlenir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir iOS uygulamasında aktif (şu anda görüntülenen) ViewController'ı belirlemek için, pencerenin kök denetleyicisinden başlayarak denetleyiciler hiyerarşisini dolaşabilirsiniz.

İşte şu anki görünür ViewController'ı döndüren Swift'te bir fonksiyon örneği:

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 fonksiyon şu şekilde çalışır:

  • Navigasyon denetleyicisi — görünür olan denetleyiciyi döndürür.
  • Sekme çubuğu denetleyicisi — seçili olan denetleyiciyi döndürür.
  • Modally sunulan denetleyici — onu döndürür.

Sonuç olarak, şu anda kullanıcıya gösterilen ViewController döndürülür.