Add childView Extension for reusable

ODENZA
Sep 25, 2021

In this article, I would like to show you how to create extension for add your childView.

protocol Containable {
func add(childView: UIViewController, container: UIView)
func remove(childView: UIViewController)
}
extension Containable where Self: UIViewController {
func add(
childView: UIViewController,
container: UIView) {
addChild(childView)
container.addSubview(childView.view)
childView.view.frame = container.bounds
childView.didMove(toParent: self)
}
func remove(childView: UIViewController) { childView.willMove(toParent: nil)
childView.view.removeFromSuperview()
childView.removeFromParent()
}
}

How to use it.

class ViewController: UIViewController, Containable {   @IBOutlet weak var yourView: UIView!
let yourViewController = YourViewController(nibName: "YourViewController", bundle: nil)
override func viewDidLoad() {
super.viewDidLoad()
add(childView: yourViewController, container: yourView)
}
}

--

--