I’m attempting to make use of dependency injection with instantiateInitialViewController for the preliminary view controller in a storyboard. My objective is to inject a ViewModel into my ViewController when it’s instantiated. Nonetheless, my app crashes with the error Deadly error: init(coder:) has not been carried out. Right here’s my setup:
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, choices connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(windowScene: windowScene)
let storyboard = UIStoryboard(identify: "Predominant", bundle: nil)
let viewController = storyboard.instantiateInitialViewController(creator: { coder in
ViewController(coder: coder, viewModel: ViewModel())
})
window?.rootViewController = viewController
window?.makeKeyAndVisible()
}
Right here is the viewcontroller
ultimate class ViewController: UIViewController {
personal let viewModel: ViewModel
init?(coder: NSCoder, viewModel: ViewModel) {
self.viewModel = viewModel
tremendous.init(coder: coder)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been carried out")
}
override func viewDidLoad() {
tremendous.viewDidLoad()
viewModel.fetchUsers { customers in
print(customers)
}
}
}

