Может быть, вы хотите что-то вроде этого:
if getTopmostViewController().isKindOfClass(vcType.dynamicType) {
// do stuff
}
выше, vcType
является экземпляром некоторого класса, и это проверка getTopmostViewController()
возвращает ли экземпляр одного и того же класса (или подкласса).
Или, может быть, вы действительно хотите, чтобы написать такую функцию:
func doStuffIfTopMostViewControllerHasType<VCType: UIViewController>(_: VCType.Type) {
if getTopmostViewController() is VCType {
// do stuff
}
}
Что вы тогда назвать так:
doStuffIfTopMostViewControllerHasType(MyViewController.self)
Обратите внимание, что я передаю сам по себе MyViewController
класс, не экземпляр MyViewController
.
Похоже, что ваш параметр 'vcType' на самом деле не является типом. Это объект. Вы хотите проверить, имеет ли верхний контроллер представления тот же класс, что и объект 'vcType'? Или вы действительно хотите, чтобы ваша функция принимала параметр типа? –