Swift - Reload UIPageViewController with new information in viewDidAppear
Asked Answered
L

1

7

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.

Lawannalawbreaker answered 6/12, 2014 at 23:22 Comment(3)
is your "UIPageViewController" an "IBOutlet" in your view controller? Is your "UIPageViewController" subclassed?Animality
You need to use the setViewControllers:direction:animated:completion: function to load the view controllers for the page(s) you want to reload.Touraine
mind helping me out, i have a similar issue. #29764915Bristletail
J
9

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)
    }
}
Jabiru answered 6/12, 2014 at 23:30 Comment(3)
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 setViewControllersLawannalawbreaker
this if never executesLawannalawbreaker
Mind helping me out here, I have a similar #29764915Bristletail

© 2022 - 2024 — McMap. All rights reserved.