UIAlertView show() behavior for UIAlertController

前端 未结 4 1806
青春惊慌失措
青春惊慌失措 2020-12-17 04:55

In previous versions of iOS I was able to call show on a UIAlertView in the App Delegate. More specifically, show was called in:

fu         


        
4条回答
  •  北荒
    北荒 (楼主)
    2020-12-17 05:11

    Here's what I ended up with:

    public class func visibleViewController() -> UIViewController? {
        return self.visibleViewController(UIApplication.sharedApplication().keyWindow?.rootViewController?)
    }
    
    private class func visibleViewController(viewController: UIViewController?) -> UIViewController? {
        if viewController?.presentedViewController == nil {
            println("Visible view controller: \(viewController)")
            return viewController
        } else if let navigationController = viewController as? UINavigationController {
            return self.visibleViewController(navigationController.topViewController)
        } else if let tabBarController = viewController as? UITabBarController {
            return self.visibleViewController(tabBarController.selectedViewController)
        } else {
            return self.visibleViewController(viewController?.presentedViewController)
        }
    }
    

提交回复
热议问题