iOS Swift: UIPageViewController - Seite programmgesteuert Drehen
Ich habe eine UIPageViewController, die funktioniert, wenn wir streichen Sie nach Links oder rechts, um Seiten umzublättern.
class ViewController: UIViewController, UIPageViewControllerDataSource {
...
}
Nun beabsichtige ich, um zur Vorherigen/Nächsten button auf die Seite zu, so dass die Seiten gedreht werden können, durch einen Klick auf diese Schaltflächen.
Wie kann ich das auslösen der Links/rechts wischen, Verhalten ODER drehen Seiten programmgesteuert?
Hinweis
Dies ist eine Frage für Swift Sprache, nicht Objective-C.
- möglich, Duplikat der Ist es möglich die Seite programmgesteuert in UIPageViewController?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie diese funtion und festlegen der übergangs-Stil der animation, die Sie wollen.
Ist in der Regel nicht brauchen, zu hantieren mit Seite Indizes und was nicht. Die Chancen sind Sie bereits die Implementierung eines
dataSource: UIPageViewControllerDataSource
, die hat alles, was Sie brauchen, um einen vorherigen oder nächsten ViewController angezeigt.Swift 2.2 Beispiel:
Diese Weise werden Sie garantiert, dass die Seiten, die Sie gerade den übergang, um genau das, was die PageViewController eingebauten gesten auslösen würde.
presentationIndexForPageViewController
mit das Ihre Idee. Auf meinempageItemViewController
ist, habe ich eine variable deklariert genanntitemIndex
. Wie kann ich einstellen, dass in dieser Erweiterung?Den Swift 3 version von SuitedSloth's Antwort (mit einem kleinen zwicken, um die
animated
parameter, wie ich es brauchte, um animiert werden, standardmäßig, aber noch einen parameter in die Funktion) falls jemand Sie braucht:{ completed in self.delegate?.pageViewController?(self, didFinishAnimating: true, previousViewControllers: [], transitionCompleted: completed) }
UIPageViewController
als Oberklasse. Ich würde überprüfen, ob Ihre Funktionen sind in dem gleichen Projekt, oder wenn nicht, wenn Sie der öffentlichkeit vielleicht?Hier ist der swift 4 Umsetzung mit den Delegierten als gut.
Da ich auch mit der UIPageViewControllerDelegate, und die delegate-Methoden nicht aufgerufen, wobei die meisten setViewController Lösungen.
Dank Andrew Duncan für seinen Kommentar über die Stellvertretung.
Hier ist eine zügige Umsetzung dieses:
viewControllerAtIndex(index: Int) -> UIViewController?
ist meine eigene Funktion, um die korrekte Ansicht-controller zu streichen.Gerade verlassen, dieses hier incase jeder man benutzen möchte ein definiertes Protokoll zum navigieren und ändern von view-Controllern programmatisch.
Verwenden Sie die oben genannten Protokoll und bestätigen, um die root-UIPageViewController zum verwalten der navigation zwischen den view-Controllern.
Beispiel unten:
Einmal erreicht all das, Kind view-Controller müssen machen UIPageViewController weiter zur nächsten oder vorherigen Seite verwenden können AppWalkThroughDelegate Methoden, indem eine bestimmte Anzahl an Delegierten-Eigenschaft.
Beispiel unten: Delegate-Methode wird aufgerufen, sobald die Taste gedrückt