之前我在viewcontroller内初始化viewmodel对象,但当我读到SOLID原则(D=dependency invsersion(时,我们不应该在viewcontroller内公开模型视图。所以我想,如果我可以在初始化期间在viewcontroller中注入viewmodel(viewcontroller已经在故事板文件中设计好了(,那么这应该会起作用。
像。。。ViewController具有类似于自定义init的。。。func init(带viewModel:viewModel(
但这可能吗??
有了情节串连板,就不能有一个干净的初始化器!
当您调用视图控制器storyboard.instantiateViewController(withIdentifier: "viewController")
时,SYSTEM将执行其任务并调用
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
您永远不能将该调用重定向到另一个init方法。然而,对于程序创建的viewController或nib创建的viewControllers,您可以重定向该调用,如上所示。
您可以使用xibs创建自己的init
方法,也可以采用完全编程的方法。
我在这里已经详细讨论过了