表示されているViewControllerを取得する
この記事、ミスが有りました。表示されているViewControllerの取得の部分の実装が不十分でした。
こちらが新しい方法です。
UIViewControllerExtention.swift
extension UIViewController { var currentTopViewController: UIViewController? { if let viewController = self as? UINavigationController { return viewController.topViewController?.currentTopViewController } if let viewController = self as? UITabBarController { return viewController.selectedViewController?.currentTopViewController } if let viewController = self.presentedViewController { return viewController.currentTopViewController } return self } }
AppDelegate.swift
func applicationDidEnterBackground(application: UIApplication) { window?.rootViewController?.currentTopViewController?.applicationDidEnterBackground(application) } func applicationWillEnterForeground(application: UIApplication) { window?.rootViewController?.currentTopViewController?.applicationWillEnterForeground(application) }