ObjectをつかってViewControllerがインスタンス化された際に自動で依存性を解決する
https://github.com/rambler-ios/Generamba
全然知らなかったんだけど、generambaを使っていてテンプレートに同じようなコードが含まれていたので気づいたw
めっちゃ便利だったので書いてみる
セットアップ
- ObjectをドラッグアンドドロップでViewControllerに設置する
Configurator(依存性を注入するクラス)を定義
- NSObjectを継承したConfiguratorを定義する
import Foundation
class Configurator: NSObject {
}
ConfiguratorをObjectに紐付ける
- custom classに先程定義したConfiguratorを紐付ける
ViewControllerとConfigurator/ViewControllerを紐付け
Configuratorで依存性を解決
import Foundation
class Configurator: NSObject {
@IBOutlet weak var viewController: ViewController!
override func awakeFromNib() {
super.awakeFromNib()
configure()
}
func configure() {
// ここで依存性を注入する
viewController.model = SmapleModel()
}
}