Если вы хотите, чтобы в данный момент отображался UIViewController, вы можете добавить это расширение:
// MARK: UIApplication extension
extension UIApplication {
// Get top view controller
static var topViewController:UIViewController? {
get{
if var topController = UIApplication.shared.keyWindow?.rootViewController {
while let presentedViewController = topController.presentedViewController {
topController = presentedViewController
}
return topController
}else{
return nil
}
}
}
}
и для использования вот так:
guard let vc = UIApplication.topViewController else { return }
Если vc является вашим верхним контроллером, это может быть UINavigationController, UITabbarcontroller или ваш пользовательский контроллер, все зависит от вашего потока навигации.