Здесь возможное решение. Протестировано с Xcode 11.4.
Используйте функцию фабрики (в любом случае, для создания экземпляра класса, класс должен быть доступен, поэтому), предполагая, что он доступен в том же модуле
func createInstance(for className: String) -> UIViewController? {
// registry of supported controllers
let classRegistry: [String: UIViewController.Type] = [
"MainViewController": MainViewController.self
// other supported controllers here
]
if let aClass = classRegistry[className] {
return aClass.init(nibName: className, bundle: nil)
}
return nil
}