guard let view = topVC?.view else { return }
extension UIApplication {
var topVC: UIViewController? {
guard var topViewController = UIApplication.shared.keyWindow?.rootViewController else { return nil }
while let presentedViewController = topViewController.presentedViewController {
topViewController = presentedViewController
}
if let navi = topViewController as? UINavigationController {
// NavigationControllerの場合は先頭のViewControllerを返す
return navi.viewControllers.first
}
if let tab = topViewController as? UITabBarController {
// TabBarControllerの場合は選択中タブのViewControllerを返す
if let navi = tab.viewControllers![tab.selectedIndex] as? UINavigationController {
// NavigationControllerの場合は先頭のViewControllerを返す
return navi.viewControllers.first
}
return tab.viewControllers![tab.selectedIndex]
}
return topViewController
}
}