final class SampleViewController: StoryboardBackedViewController { // Unfortunately this must be an IUO var, so that we can set the value after super.init private var member: Foo! // Proper dependency injection in a storyboard backed VC! init(foo: Foo) { super.init(storyboardIdentifier: "SampleViewControllerIdentifier") // We have to set the members *after* calling super.init, since it changes the instance of `self`. self.member = foo } }