|
@@ -282,3 +282,26 @@ extension CCMain {
|
|
|
return actions
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+extension UIViewController {
|
|
|
+ @objc class func topViewController(rootViewController: UIViewController?) -> UIViewController? {
|
|
|
+ guard let rootViewController = rootViewController else {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
+ guard let presented = rootViewController.presentedViewController else {
|
|
|
+ return rootViewController
|
|
|
+ }
|
|
|
+
|
|
|
+ switch presented {
|
|
|
+ case let navigationController as UINavigationController:
|
|
|
+ return topViewController(rootViewController: navigationController.viewControllers.last)
|
|
|
+
|
|
|
+ case let tabBarController as UITabBarController:
|
|
|
+ return topViewController(rootViewController: tabBarController.selectedViewController)
|
|
|
+
|
|
|
+ default:
|
|
|
+ return topViewController(rootViewController: presented)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|