added iOS source code
[wl-app.git] / iOS / Pods / OAuthSwift / Sources / UIApplication+OAuthSwift.swift
1 //
2 //  UIApplication+OAuthSwift.swift
3 //  OAuthSwift
4 //
5 //  Created by phimage on 11/12/15.
6 //  Copyright © 2015 Dongri Jin. All rights reserved.
7 //
8
9 #if os(iOS) || os(tvOS)
10     import UIKit
11
12     extension UIApplication {
13         static var topViewController: UIViewController? {
14             #if !OAUTH_APP_EXTENSIONS
15                 return UIApplication.shared.topViewController
16             #else
17                 return nil
18             #endif
19         }
20
21         var topViewController: UIViewController? {
22             guard let rootController = self.keyWindow?.rootViewController else {
23                 return nil
24             }
25             return UIViewController.topViewController(rootController)
26         }
27     }
28
29     extension UIViewController {
30
31         static func topViewController(_ viewController: UIViewController) -> UIViewController {
32             guard let presentedViewController = viewController.presentedViewController else {
33                 return viewController
34             }
35             #if !topVCCastDisabled
36             if let navigationController = presentedViewController as? UINavigationController {
37                 if let visibleViewController = navigationController.visibleViewController {
38                     return topViewController(visibleViewController)
39                 }
40             } else if let tabBarController = presentedViewController as? UITabBarController {
41                 if let selectedViewController = tabBarController.selectedViewController {
42                     return topViewController(selectedViewController)
43                 }
44             }
45             #endif
46             return topViewController(presentedViewController)
47         }
48     }
49
50 #endif