Type convert with generic failed

I have class which with generic

class QUIViewController<VH, VM>: UIViewController where VH: QViewHolder, VM: QViewModel {}
class QViewHolder: NSObject {}
class QViewModel: NSObject {}

baseclass with common logic

class BaseViewHolder: QViewHolder{}
class BaseViewModel: QViewModel{}
class BaseViewController<VH, VM>: QUIViewController<VH, VM> where VH: BaseViewHolder, VM: BaseViewModel {}

subclass

class XXViewHolder: BaseViewHolder{}
class XXViewModel: BaseViewModel{}
class XXViewController: BaseViewController<XXViewHolder, XXViewModel> {}

I have a property vc which type is XXViewController
when I run po vc as? BaseViewController returns nil
when I run po vc as? BaseViewController<BaseViewHolder, BaseViewModel> returns nil
when I run po vc as? UIViewController returns UIViewController type of vc
when I run po vc as? BaseViewController<XXViewHolder, XXViewModel> returns BaseViewController type of vc but it contains subclass XXViewHolder and XXViewModel

but these is not I want.I only want to convert to BaseViewController without any subclass Info.

what should I do?