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)
}
}
Comments
-
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 over 9 yearsis your "
UIPageViewController
" an "IBOutlet
" in your view controller? Is your "UIPageViewController
" subclassed? -
pbasdf over 9 yearsYou need to use the
setViewControllers:direction:animated:completion:
function to load the view controllers for the page(s) you want to reload. -
Serge Pedroza about 9 yearsmind helping me out, i have a similar issue. stackoverflow.com/questions/29764415/…
-
-
Bogdan Bogdanov over 9 years
override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) self.setViewControllers(pageViewController, direction: .Forward, animated: true, completion: {}) }
prints an errorViewController does not have a member named setViewControllers
-
Bogdan Bogdanov over 9 yearsthis
if
never executes -
Serge Pedroza about 9 yearsMind helping me out here, I have a similar stackoverflow.com/questions/29764415/…