Search code examples
iosuipageviewcontrollerchildviewcontroller

Presenting child view controller inside UIPageController's current page


I have a page view controller that transitions between view controllers using the normal UIPageViewController methods. Inside one of the presented view controllers (let's say the current view controller), I add a child view controller into a subview called containerView like so:

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let child = storyboard.instantiateViewController(withIdentifier: "child")
    self.addChildViewController(child)
    child.view.frame = self.containerView.bounds
    self.containerView.addSubview(child.view)
    child.didMove(toParentViewController: self)

The view controller is presented inside the containerView, however it is only semi-interactive. For example, let's say the child view controller has a slider that updates a label with the slider's value. When sliding the slider, the slider will move visually inside the containerView, but won't update the label (the IBAction connected to the slider doesn't run). This behavior worked correctly when the view controller was presented normally (full screen using normal segueing).

Any ideas?


Solution

  • Seems as though something was going on with the storyboard view controllers, as I was able to remove the slider and add a new slider in and the functionality worked correctly inside the UIPageViewController page.