【发布时间】:2016-12-19 19:00:39
【问题描述】:
我想知道是否有一种方法可以不显式地通过设置器传递您的依赖对象。即设置器依赖项:
var store: Store!
这可以通过 VC 的初始化程序(instantiateViewControllerWithIdentifier)以某种方式完成,即使用情节提要的初始化程序注入吗? 谢谢
【问题讨论】:
标签: swift dependency-injection initialization uistoryboard
我想知道是否有一种方法可以不显式地通过设置器传递您的依赖对象。即设置器依赖项:
var store: Store!
这可以通过 VC 的初始化程序(instantiateViewControllerWithIdentifier)以某种方式完成,即使用情节提要的初始化程序注入吗? 谢谢
【问题讨论】:
标签: swift dependency-injection initialization uistoryboard
你可以引入一个额外的类,它负责配置你的 viewController。
class MyViewControllerConfigurator {
static func configure(viewController: MyViewController) {
let someDependency = SomeDependency()
viewController.someDependency = someDependency
// force trigger lazy initialization of view (and subviews), which would be nil otherwize in awaikFromNib
_ = viewController.view
// do further configuration here (add child view controller, set delegates ...)
}
}
在MyViewController中的用法:
class MyViewController: UIViewController {
override func awakeFromNib() {
super.awakeFromNib()
MyViewControllerConfigurator.configure(viewController: self)
}
}
这样,即使使用 Storyboard 实例化,您的 viewController 也会被配置。
【讨论】: