class ViewControllerContainer extends View { /** * The build function is called in the constructor when no element was passed as the base. * Override it to create custom subviews or manipulate the root element. * Don't forget to return the element in the end! */ build(element) { return element; } /** * Called once the view has been processed by UIKit during the view controller initialization. */ viewDidLoad() { if (this.viewController) { this.viewController.viewDidLoad(); } } /** * Called everytime before the view is shown. * The layout is already done at this step, so it's safe to use scrollWidth and scrollHeight and what not. */ viewWillAppear() { if (this.viewController) { this.viewController.viewWillAppear(); this.viewController.subviewsWillAppear(); } } /** * Called everytime after the view is shown. */ viewDidAppear() { if (this.viewController) { this.viewController.viewDidAppear(); this.viewController.subviewsDidAppear(); } } /** * Called everytime before the view is hidden. */ viewWillDisappear() { if (this.viewController) { this.viewController.viewWillDisappear(); this.viewController.subviewsWillDisappear(); } } /** * Called everytime after the view is hidden. */ viewDidDisappear() { if (this.viewController) { this.viewController.viewDidDisappear(); this.viewController.subviewsDidDisappear(); } } setViewController(viewController) { this.viewController = viewController; this.element.appendChild(viewController.element); this.viewController.viewDidLoad(); this.viewController.viewWillAppear(); this.viewController.viewDidAppear(); } } UIKit.registerViewType(ViewControllerContainer);