Контроллеры представления раскадровки ДОЛЖНЫ создавать экземпляры с storyboard
.если вам нужна пользовательская функция конструктора (например, инициализатор), вы можете определить простую, например, такую:
extension ProfileViewController {
static func new(argument: any) -> ProfileViewController {
let vc = UIStoryboard(name: "SignUp", bundle: nil).instantiateViewController(withIdentifier: "ProfileViewController") as! ProfileViewController
vc.argument = argument
return vc
}
}
Обратите внимание, что если вы хотите использовать настоящий инициализатор, вы не можете использовать раскадровку.Вы можете использовать представление разработанного контроллера представления и назначить его представлению в инициализаторе, но вы потеряете другие настройки контроллера представления.
extension ProfileViewController {
convenience init(argument: Any) {
self.init()
self.view = UIStoryboard(name: "SignUp", bundle: nil).instantiateViewController(withIdentifier: "ProfileViewController").view
self.argument = argument
}
}