| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // 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 {
- 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
- }
- }
|