ObjectをつかってViewControllerがインスタンス化された際に自動で依存性を解決する

ObjectをつかってViewControllerがインスタンス化された際に自動で依存性を解決する

https://github.com/rambler-ios/Generamba
全然知らなかったんだけど、generambaを使っていてテンプレートに同じようなコードが含まれていたので気づいたw
めっちゃ便利だったので書いてみる

セットアップ

  • ObjectをドラッグアンドドロップでViewControllerに設置する

スクリーンショット 2017-06-07 16.40.14.png

Configurator(依存性を注入するクラス)を定義

  • NSObjectを継承したConfiguratorを定義する
import Foundation

class Configurator: NSObject {
}

ConfiguratorをObjectに紐付ける

  • custom classに先程定義したConfiguratorを紐付ける

スクリーンショット 2017-06-07 16.41.13.png

ViewControllerとConfigurator/ViewControllerを紐付け

スクリーンショット 2017-06-07 16.51.06.png

Configuratorで依存性を解決

import Foundation

class Configurator: NSObject {
    @IBOutlet weak var viewController: ViewController!

    override func awakeFromNib() {
        super.awakeFromNib()
        configure()
    }

    func configure() {
         // ここで依存性を注入する
             viewController.model = SmapleModel()
    }
}

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.