Wednesday, March 4, 2026
HomeiOS Developmentios - Why does preliminary viewcontroller crash with instantiateInitialViewController from the storyboard?

ios – Why does preliminary viewcontroller crash with instantiateInitialViewController from the storyboard?


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)
        }
    }
}

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments