ObjectをつかってViewControllerがインスタンス化された際に自動で依存性を解決する
https://github.com/rambler-ios/Generamba
全然知らなかったんだけど、generambaを使っていてテンプレートに同じようなコードが含まれていたので気づいたw
めっちゃ便利だったので書いてみる
セットアップ
- ObjectをドラッグアンドドロップでViewControllerに設置する
![スクリーンショット 2017-06-07 16.40.14.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F75313%2F244b83a8-88a6-e791-3e07-ee1d6d38e0da.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=a0465bc1736f063a5a895facbc4dd9fe)
Configurator(依存性を注入するクラス)を定義
- NSObjectを継承したConfiguratorを定義する
import Foundation
class Configurator: NSObject {
}
ConfiguratorをObjectに紐付ける
- custom classに先程定義したConfiguratorを紐付ける
![スクリーンショット 2017-06-07 16.41.13.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F75313%2F16fc2e6b-0e60-6b5e-d181-113229543733.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ff82ab26c3a138273a3855560a9f43fc)
ViewControllerとConfigurator/ViewControllerを紐付け
![スクリーンショット 2017-06-07 16.51.06.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F75313%2Fd4a3cbe6-f8ec-085e-7ec3-814c2ab8c825.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d8e706af42f2d69e1f39b4b20f2eb700)
Configuratorで依存性を解決
import Foundation
class Configurator: NSObject {
@IBOutlet weak var viewController: ViewController!
override func awakeFromNib() {
super.awakeFromNib()
configure()
}
func configure() {
// ここで依存性を注入する
viewController.model = SmapleModel()
}
}