iOS 응용 (swift)
[iOS - swift] ContainerViewController, ContentsViewController
jake-kim
2021. 1. 9. 13:17
ContainerViewController 란?
- 하나 이상의 UIViewController를 childViewController로 가지는 UIViewController를 의미
- ContainerViewController의 대표적인 예) - talBarController, navigationController
ContentsViewController 란?
- 위 ContainerViewController의 자식들을 이미
ContainerVC가 ContentsVC를 추가하는 방법
// 추가
extension UIViewController {
func add(_ child: UIViewController) {
addChild(child)
view.addSubview(child.view)
child.didMove(toParent: self) // 추가된 후 호출
}
}
// 삭제
extension UIViewController {
func remove() {
guard parent != nil else {
return
}
willMove(toParent: nil) // 삭제 되기 직전 호출
removeFromParent() // addChild(child)와 반대
view.removeFromSuperview() // view.addSubview(child.view)와 반대
}
}
1. parentVC.addChild(childVC)
- parent - child 관계 형성

2. parentVC.view.addSubView(childVC.view)
- 추가된 childVC.view가 맨 앞으로 위치하여 보일 수 있도록 하는 것

3. childVC.didMove(toParent: parentVC)
- childVC에 parentVC에 추가되거나, 삭제된 후 호출되는 메소드

화면전환의 디폴트 애니메이션
