Swift - Reload UIPageViewController with new information in viewDidAppear

Bogdan Bogdanov picture Bogdan Bogdanov · Dec 7, 2014 · Viewed 9.7k times · Source

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.

Answer

Devran Cosmo Uenal picture Devran Cosmo Uenal · Dec 7, 2014

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)
    }
}