-
부모 viewController에서 addSubview 를 통해 뷰를 노출 시키는 방법개발/Swift 2021. 3. 22. 18:39
여러개의 뷰를 add / remove 하여서 계속 뷰를 바꾸게 하기 위해 subView를 사용했다.
스토리보드에서 segue를 지정해준뒤 segue를 사용해서 자식 컨테이너 뷰 컨트롤러에 데이터를 넘겨주는 방식으로 하니
전해줄 데이터를 미리 세팅하고 나서 전달해줘야 하는데 segue를 스토리보드에서 지정해주니
view did load 이전에 호출되어 데이터가 제대로 넘어가지도 않고
prepare 메소드를 원하는 때에 호출 시키기가 어려웠다.
방법은 원하는때에 addSubview를 하는것인데 이런식으로 하면된다.
위에는 스토리보드에서 VideoViewController를 찾고 데이터를 넣어줬으며
vc.view.frame = self.videoView.bounds
self.videoView는 추가할 컨테이너뷰 이름이다. 이렇게 지정해줘야 크기가 알맞게 들어왔고
self.videoView.addSubview(vc.view) vc.didMove(toParent: self)
addSubView를 해주고 didMove 메소드를 넣어주면 자식에게 Notify가 되어
자식 뷰컨트롤러 의 (컨테이너-videoView 의 뷰컨트롤러) viewDidLoad가 실행됨을 확인 할수있었다.
self.addChild(vc)
ㅇㅁ그리고 이걸 넣어줘야 자식에서 self가 정상 작동한다.
'개발 > Swift' 카테고리의 다른 글
Gitlab Runner Register (0) 2021.04.08 fastlane ($(MARKETING_VERSION)) does not respect the format A or A.B or A.B.C 오류 해결 (0) 2021.03.23 Storyboard reference 스토리보드 분할하기 (0) 2021.03.12 Swift CollectionView Scroll 이미지로 인한 렉 현상 해결 (0) 2021.02.22 Swift MVVM 패턴 Network -> Decode -> View (0) 2021.01.12