2016-12-17 1 views

답변

0

viewController 구성을 담당하는 추가 클래스를 추가 할 수 있습니다. MyViewController에서

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 ...) 
    } 
} 

사용법 :

class MyViewController: UIViewController { 

    override func awakeFromNib() { 
     super.awakeFromNib() 
     MyViewControllerConfigurator.configure(viewController: self) 
    } 
} 

스토리 보드를 사용하여 인스턴스화 할 때의 ViewController도 구성됩니다 이런 식으로.

+0

의견을 보내 주셔서 감사합니다. 나는 사실 싱글 톤에 대해 완전히 잊어 버렸다. 잠시 동안 사용하지 않았다. 그러나 그들이 싱글 책임 원칙을 위반하기 때문에 일반적으로 싱글 톤이 나쁜 디자인이 아닌가? –

+0

나는 Singletons가 신적인 것을 피하는 것에 동의한다. 그러므로 그 이유는 "단 하나의 책임 원칙"이 아니라 다른 주제이다. 이것은 단지 하나의 가능한 구현 예였습니다. 나는 대답을 업데이트했다. – shallowThought

+0

@shallowThought 이것은 의존성 삽입 예제가 아닙니다. 종속성을 수동으로 설정하고 종속성을 대상으로 전달하지 않습니다. – Gunhan

관련 문제