あなたは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)
}
}
あなたのViewControllerは、ストーリーボードを使用してインスタンス化しても設定されますこの方法です。
あなたの考えを共有してくれてありがとう。私は実際にシングルトンについて完全に忘れていました。しばらく使っていないのです。しかし、独身責任原理に違反するので、シングルトンは一般的に悪いデザインではありませんか? –
私はシングルトンが神のものであることを避けることに同意します。なぜなら、その理由は「単一責任の原則」ではありませんが、それは別の話題です。これはただ1つの実装例でした。私は答えを更新しました。 – shallowThought
@shallowThoughtこれは依存性注入の例ではありません。依存関係を手動で設定していて、依存関係をターゲットに渡していません。 – Gunhan