Swift - Reload UIPageViewController with new information in viewDidAppear

10,391

If you want to reload the ViewControllers inside the UIPageViewController, just re-set them with:

pageViewController(pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool)

if you are going to update your viewControllers from inside a viewController, you have to call it this way:

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    let viewControllers: [UIViewControllers] = [UIViewController()]
    if let pageViewController = parentViewController as? UIPageViewController {
        pageViewController.setViewControllers(viewControllers, direction: .Forward, animated: true, completion: nil)
    }
}
Share:
10,391
Bogdan Bogdanov
Author by

Bogdan Bogdanov

Junior Swift Programmer

Updated on June 23, 2022

Comments

  • Bogdan Bogdanov
    Bogdan Bogdanov almost 2 years

    How to reload UIPageViewController in viewDidAppear?

    There, I refresh information from CoreData and I want to updated values when the view appears.

    I tried with function reloadInputViews(), but unsuccessfully only when you start to open pages then the information is updated.

    • Michael Dautermann
      Michael Dautermann over 9 years
      is your "UIPageViewController" an "IBOutlet" in your view controller? Is your "UIPageViewController" subclassed?
    • pbasdf
      pbasdf over 9 years
      You need to use the setViewControllers:direction:animated:completion: function to load the view controllers for the page(s) you want to reload.
    • Serge Pedroza
      Serge Pedroza about 9 years
      mind helping me out, i have a similar issue. stackoverflow.com/questions/29764415/…
  • Bogdan Bogdanov
    Bogdan Bogdanov over 9 years
    override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) self.setViewControllers(pageViewController, direction: .Forward, animated: true, completion: {}) } prints an error ViewController does not have a member named setViewControllers
  • Bogdan Bogdanov
    Bogdan Bogdanov over 9 years
    this if never executes
  • Serge Pedroza
    Serge Pedroza about 9 years
    Mind helping me out here, I have a similar stackoverflow.com/questions/29764415/…