u16suzuの blog

日々学んだことのメモブログです。

ContainerViewController のスニペット

import UIKit

class ParentViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    // コンテナビューコントローラに追加
    func addViewController(vc: UIViewController){
        self.addChildViewController(vc)
        vc.view.frame = self.view.frame // 子ビューのframe を設定する必要がある
        self.view.addSubview(vc.view)
        vc.didMoveToParentViewController(self)
    }
    
    // コンテナビューコントローラから削除
    func removeViewController(vc: UIViewController){
        vc.willMoveToParentViewController(nil)
        vc.view.removeFromSuperview()
        vc.removeFromParentViewController()
    }
    
}

手順通り追加処理をしないと, contentViewController の viewDidLoad がよばれなかった。

参考

github.com

https://developer.apple.com/jp/documentation/ViewControllerPGforiOS.pdf