| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // Copyright (C) 2016 Inigo Valentin
- //
- // This file is part of the Gasteizko Margolariak IOS app.
- //
- // The Gasteizko Margolariak IOS app is free software: you can
- // redistribute it and/or modify it under the terms of the
- // GNU General Public License as published by the Free Software
- // Foundation, either version 3 of the License, or (at your
- // option) any later version.
- //
- // The Gasteizko Margolariak IOS app is distributed in the
- // hope that it will be useful, but WITHOUT ANY WARRANTY;
- // without even the implied warranty of MERCHANTABILITY or
- // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- // Public License for more details.
- //
- // You should have received a copy of the GNU General Public
- // License along with the Gasteizko Margolariak IOS app.
- // If not, see <http://www.gnu.org/licenses/>.
- import Foundation
- import UIKit
- /**
- Extension of UIApplication to get the root view controller.
- */
- extension UIApplication {
-
- /**
- Gets the top level controller.
- :return: Top level view controller.
- */
- class func topViewController(controller: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? {
- if let navigationController = controller as? UINavigationController {
- return topViewController(controller: navigationController.visibleViewController)
- }
- if let tabController = controller as? UITabBarController {
- if let selected = tabController.selectedViewController {
- return topViewController(controller: selected)
- }
- }
- if let presented = controller?.presentedViewController {
- return topViewController(controller: presented)
- }
- return controller
- }
- }
|