SWRevealViewController Проблема при получении currentController
Я использовал следующий метод, чтобы получить текущий viewController
но всегда возвращается SWRevealViewController
в качестве текущего контролера.
я использовал SWRevealViewController
для обработки слайд-меню.
extension UIApplication {
class func topViewController(base: UIViewController) -> UIViewController?{
if let nav = base as? UINavigationController {
return topViewController(nav.visibleViewController!)
}
if let tab = base as? UITabBarController {
if let selected = tab.selectedViewController {
return topViewController(selected)
}
}
if let presented = base.presentedViewController {
return topViewController(presented)
}
return base
}
}
Вот как я пытаюсь получить текущий контроллер:
let topVC = UIApplication.topViewController(((UIApplication.sharedApplication().delegate as! AppDelegate).window?.rootViewController)!)
print(topVC)
if topVC!.isKindOfClass(mycontroller) == false{
//do something
}else{
// do another thing
}
}
1 ответ
Попробуйте получить текущий контроллер вида следующим образом:
UIViewController *topController = self.window.rootViewController;
while (topController.presentedViewController) {
topController = topController.presentedViewController;
}