Ich möchte in der Lage sein, meinen UIPageViewController als Ergebnis eines Ereignisses auf einer bestimmten Seite zu drehen. Wie kann man das mit der Page View-Vorlage in Xcode erreichen? Ich habe gerade daran gedacht, dass DataViewController und ModelController einen Verweis auf den UIPageViewController in RootViewController enthalten und dann die Methode [(UIPageViewController *) setViewControllers] verwenden, aber das scheint schlampig zu sein. Gibt es einen besseren Weg, dies zu tun?Wie man die Seite eines UIPageViewController von einem DataViewController richtig dreht?
0
A
Antwort
0
Der UIPageViewController kann bereits vom DataViewController aus aufgerufen werden. Alle UIViewController-Unterklassen haben ein Feld mit dem Namen "parentViewController", das auf die UIViewController-Unterklasse verweist, die sie besitzt (was ein UIPageViewController verwendet).
Wenn Sie die Seite ändern möchten, rufen Sie einfach
[((UIPageViewController*)self.parentViewController) setViewControllers:
target direction:UIPageViewControllerNavigationForward completion:nil];
groß, es jetzt. Allerdings musste ich eine Eigenschaft zum dataviewcontroller hinzufügen, die den modelviewcontroller referenzierte, damit ich die nächsten und vorherigen dataviewcontrollers erhalten konnte. nicht sicher, ob ich das tun sollte oder nur zwei Eigenschaften für jede Seite habe, die auf die nächste und vorherige Seite verweisen. – Marty
Ich denke, dass die direkte Bezugnahme auf den ModelViewController wahrscheinlich Ihre beste Wette ist; Spart die Mühe, jeden DataViewController mit den vorherigen und nächsten Ansichten zu initialisieren, und beseitigt auch alle Bedenken, wenn Sie Ihr Modell auf einer Seite bearbeiten (wenn Sie sagen, die nächste Seite zu entfernen, müssen Sie auch daran denken, sie zu aktualisieren alle Verweise auf diese Seite). – Chaosphere2112
@Marty Können Sie bitte den Code, der seine Funktionalität zeigt, die vollständige Methode veröffentlichen. –