खोज…


सबसे ऊपरी UIViewController प्राप्त करें

सबसे सामान्य UIViewController प्राप्त करने के लिए एक सामान्य दृष्टिकोण आपके सक्रिय UIWindow के RootViewController को प्राप्त करना है। मैंने इसके लिए एक एक्सटेंशन लिखा:

extension UIApplication {

func topViewController(_ base: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController {
    
    if let nav = base as? UINavigationController {
        return topViewController(nav.visibleViewController)
    }
    
    if let tab = base as? UITabBarController {
        if let selected = tab.selectedViewController {
            return topViewController(selected)
        }
    }
    
    if let presented = base?.presentedViewController {
        return topViewController(presented)
    }
    
    return base!
}

इंटरसेप्ट सिस्टम इवेंट

IOS के NotificationCenter का उपयोग करना, जो बहुत शक्तिशाली हो सकता है, आप कुछ ऐप-वाइड ईवेंट को इंटरसेप्ट करने में सक्षम हैं:

NotificationCenter.default.addObserver(
        self,
        selector: #selector(ViewController.do(_:)),
        name: NSNotification.Name.UIApplicationDidBecomeActive,
        object: nil)

आप बहुत अधिक घटनाओं के लिए पंजीकरण कर सकते हैं, बस https://developer.apple.com/reference/foundation/nsnotification.name पर एक नज़र डालें।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow