     open func scrollViewDidScroll(_ scrollView: UIScrollView) {
         // Delegate
         delegate?.pagerController?(self, scrollViewdidScroll: scrollView)
+        
+        // Add child view controller's view if needed
+        let indexes = self.visiblePageIndexes()
+        
+        for index in indexes {
+            let viewController = viewControllers[index]
+            viewController.view.frame = CGRect(x: CGFloat(index) * view.bounds.width, y: 0, width: view.bounds.width, height: view.bounds.height - segmentedControlHeight)
+            pageScrollView.addSubview(viewController.view)
+        }
         
         // Update bar position
         scrollIndicator.frame.origin.x = scrollView.contentOffset.x/scrollView.contentSize.width * scrollView.frame.size.width

        
        setUpSegmentedControl(titles: titles)
        
        
        // Then add subview, we do this later to prevent viewDidLoad of child view controllers to be called before page segment is allocated.
        for (index, viewController) in viewControllers.enumerated() {
            // Add first view controller to controller hierachy
            if index == 0 {
                viewController.willMove(toParentViewController: self)
                addChildViewController(viewController)
            }
            
            pageScrollView.addSubview(viewController.view)
            
            if index == 0 {
                viewController.didMove(toParentViewController: self)

        
        // Update child view controllers' view frame
        for (index, viewController) in viewControllers.enumerated() {
            viewController.viewIfLoaded?.frame = CGRect(x: CGFloat(index) * view.bounds.width, y: 0, width: view.bounds.width, height: view.bounds.height - segmentedControlHeight)
        }
        
        // Update scroll indicator's vertical position
