Dies erklärt, wie ein ausgelagerte View-Controller-Storyboard mit erstellen:
- Ziehen Sie einen UIPageViewController in Storyboard und es als Ausgangs-View-Controller markieren.
- Dann erstellen Sie eine neue
UIPageViewController
Unterklasse - nennen Sie es TutorialPageViewController
und weisen Sie es dem Objekt zu, das Sie gerade in das Storyboard gezogen haben.
- Ziehen Sie nun zwei neue UIViewControllers in das Storyboard und erstellen/weisen Sie für jede eine Unterklasse zu, wie Sie es normalerweise tun würden.
- Geben Sie jedem dieser zwei View-Controller einen
Storyboard ID
, z. B. RedViewController
& GreenViewController
.
- nun diesen Code in Ihrem
TutorialPageViewController
hinzufügen, die und zeigt den richtigen View-Controller erstellt, wenn Sie Swipe:
TutorialPageViewController:
class TutorialPageViewController: UIPageViewController, UIPageViewControllerDataSource {
private(set) lazy var orderedViewControllers: [UIViewController] = {
return [self.newColoredViewController("RedViewController"),
self.newColoredViewController("GreenViewController")]
}()
private func newColoredViewController(color: String) -> UIViewController {
return UIStoryboard(name: "Main", bundle: nil) .
instantiateViewControllerWithIdentifier("\(color)ViewController")
}
override func viewDidLoad() {
super.viewDidLoad()
dataSource = self
if let firstViewController = orderedViewControllers.first {
setViewControllers([firstViewController],
direction: .Forward,
animated: true,
completion: nil)
}
}
func pageViewController(pageViewController: UIPageViewController,
viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
guard let viewControllerIndex = orderedViewControllers.indexOf(viewController) else {
return nil
}
let previousIndex = viewControllerIndex - 1
guard previousIndex >= 0 else {
return nil
}
guard orderedViewControllers.count > previousIndex else {
return nil
}
return orderedViewControllers[previousIndex]
}
func pageViewController(pageViewController: UIPageViewController,
viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
guard let viewControllerIndex = orderedViewControllers.indexOf(viewController) else {
return nil
}
let nextIndex = viewControllerIndex + 1
let orderedViewControllersCount = orderedViewControllers.count
guard orderedViewControllersCount != nextIndex else {
return nil
}
guard orderedViewControllersCount > nextIndex else {
return nil
}
return orderedViewControllers[nextIndex]
}
}
Siehe den Artikel für weitere Informationen und eine Anleitung zu diesem Thema.
https://spin.atomicobject.com/2015/12/23/swift-uipageviewcontroller-tutorial/
Update: Seite Dots
Lesen von Punkt 7 auf diesem Teil 2 Artikel, der zeigt, wie ein UIPageControl hinzuzufügen und die Punkte auf Swipe ändern:
https://spin.atomicobject.com/2016/02/11/move-uipageviewcontroller-dots/
@IBOutlet weak var pageControl: UIPageControl!
func tutorialPageViewController(tutorialPageViewController: TutorialPageViewController,
didUpdatePageCount count: Int) {
pageControl.numberOfPages = count
}
func tutorialPageViewController(tutorialPageViewController: TutorialPageViewController,
didUpdatePageIndex index: Int) {
pageControl.currentPage = index
}
Haben Sie sich meine Antwort angesehen? Etwas Glück? –
Vielen Dank! Ich habe es getestet, es funktioniert, aber ich sehe nicht die untere Leiste mit den Punkten, die die Seiten darstellen. Wie kann ich die Punktleiste anzeigen? – Archimede
Alles gelöst! Danken! – Archimede