Actualiser UIPageViewController - réorganiser des pages et ajouter de nouvelles pages
J'ai un UIPageViewController
qui je suis en fournissant des données de page pour l'utilisation d'une mise en œuvre de UIPageControllerDelegate
et UIPageControllerDataSource
.
Ça fonctionne très bien, mais je veux être en mesure d'ajouter des éléments à la page de données et de réorganiser les données de la page.
Si un utilisateur a déjà obtenu à la dernière des pages, et puis j'ai ajouter un élément, ils ne peuvent pas accéder à la page suivante, car viewControllerAfterViewController:
a déjà été appelée. Si ils défiler l'écran vers l'un, puis deux, ils peuvent obtenir à la nouvelle page de l'amende, de sorte que les données est configuré correctement. Comment puis-je savoir le UIPageViewController
pour rafraîchir sa mémoire de ce qui s'en vient?
De même je voudrais réorganiser la collection qui est la sauvegarde de l'affichage de la page. Mais si je fais cela, je vais obtenir le même problème - l'affichage de la page pense que la page suivante est encore ce que c'était la dernière fois que la page en cours a été chargé.
Je suppose que je suis à la recherche de quelque chose de semblable à reloadData:
sur UITableView
.
Vous devez vous connecter pour publier un commentaire.
Vous devez appeler
setViewControllers:direction:animated:completion:
.Aussi, dans iOS 6, attention si vous utilisez UIPageViewControllerTransitionStylescroll style, car il est l'un des principaux de la mise en cache bug si
animated:
est OUI (voir ma discussion ici: UIPageViewController navigue vers la mauvaise page de Défilement style de transition).J'ai trouvé une solution de contournement à force
UIPageViewController
à oublier la mise en cache de la vue des contrôleurs de pages voisines qui ne sont pas actuellement affichée:Je le fais à chaque fois que je change l'ensemble des pages. Bien sûr, cela n'affecte pas la page actuellement affichée.
Avec cette solution de contournement-je éviter la mise en cache de bug et on peut encore utiliser
animated:YES
danssetViewControllers:direction:animated:completion:
.setViewControllers:direction:animated:completion:
, après, ou à la fin du bloc? Merci.dataSource
(un.k.un.pageViewController.dataSource = nil;
) votre méthode-viewControllerBefore
et-viewControllerAfter
sera de nouveau appelée. Pour restaurer la base de données.presentationCountForPageViewController
renvoie une valeur dynamique qui pourraient changer après l'actualisation.setViewControllers:direction:animated:completion:
assez vite, encore mal le décalage du contenu.Voici mon achever la mise en œuvre de @ortwin-gentz de réponse dans la didFinish délégué méthode Swift 2, qui fonctionne parfaitement pour moi:
Swift 4 Version pour recharger des données de pageviewcontroller, à @théorie de la version.