-
[Swift] ViewController Custom Init (parameter 전달)개발/Swift 2022. 8. 29. 16:35
Modern Collection View 와 MVVM 패턴 가이드
ViewController Custom Init (parameter)
코드로 UI 를 짜는경우는 이렇게 사용할수있다.
init(viewModel: MonitoringViewModel) { self.monitoringViewModel = viewModel super.init(nibName: nil, bundle: nil) } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") }
스토리 보드를 쓰지 않기떄문에 required init?(coder: NSCoder)
이부분이 불리지 않을것이다.
하지만 스토리보드로 UI를 사용했다면
storyboard.instantiateViewController(withIdentifier: "viewController")
이렇게 스토리보드 에서 뷰컨트롤러를 init 하게되고
required init?(coder: NSCoder) 이 실행된다.
이 부분은 거스를수가 없어 결국 init을 커스텀하는것이 불가능하다.
init 이후에 viewDidload()가 불리게 될텐데
따라서 뷰컨에 파라미터를 지정해주기 위해서는 init -> viewdidLoad() 이후
파라미터를 세팅해주는것 말고는 답이없다.
let viewController = storyboard.instantiateViewController(withIdentifier: "viewController") viewController.viewModel = ViewModel()
'개발 > Swift' 카테고리의 다른 글
Apollo swift + Rxswift 를 활용한 API 네트워크와 에러처리 (0) 2022.11.03 [Swift] URLSession 통해 async fetch & json 파싱 (0) 2022.10.04 [Swift] 라이브러리 내부 이미지 관련 오류 (0) 2022.08.25 [Swift] 특정 코너만 CornerRadius 적용시키기 (0) 2022.08.22 [Swift] Superview 의 tap gesture 적용시 sub view에 영향 안주기 (0) 2022.08.19