class SplitViewController extends ViewController { /** * Called when the view controller was loaded on launch. * Use this function to do some additional preparation before the view is shown. * This function will be called once only. If you want to do something everytime before the view is shown, use viewWillAppear(). * Since the view is not necessarily going to be shown after this call, no layout is done yet at this step. */ viewDidLoad() { this.splitView = new SplitView(); this.element.appendChild(this.splitView.element); this.allSubviews.push(this.splitView); this.viewControllerContainers = [ ]; for (var i = 0; i < 2; i++) { var viewControllerContainer = new ViewControllerContainer(); if (i == 0) { this.splitView.setLeftView(viewControllerContainer); } else { this.splitView.setRightView(viewControllerContainer); } this.viewControllerContainers.push(viewControllerContainer); } var leftViewControllerId = this.element.getAttribute("left-view-controller"); var rightViewControllerId = this.element.getAttribute("right-view-controller"); if (leftViewControllerId) { this.setLeftViewController(UIKit.getViewControllerById(leftViewControllerId)); } if (rightViewControllerId) { this.setRightViewController(UIKit.getViewControllerById(rightViewControllerId)); } } /** * 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() { } /** * Called everytime after the view is shown. */ viewDidAppear() { } /** * Called everytime before the view is hidden. */ viewWillDisappear() { } /** * Called everytime after the view is hidden. */ viewDidDisappear() { } setLeftViewController(viewController) { this.leftViewController = viewController; this.viewControllerContainers[0].setViewController(viewController); } setRightViewController(viewController) { this.rightViewController = viewController; this.viewControllerContainers[1].setViewController(viewController); } } UIKit.registerViewControllerType(SplitViewController);