2017-11-14 1 views
0

Wie Sie die vorherigen und nächsten Schaltflächen zu UIPageViewController hinzufügen und nur auf Schaltfläche klicken sollte die Seite mit horizontalen Scroll-Effekt ändern. Kann mir jemand irgendein Tutorial vorschlagen? Da ich neu bei Swift bin, weiß ich nicht, wie ich das umsetzen soll. Bitte helfen ..UIPageViewController mit vorherigen und nächsten Schaltflächen

+0

ist es zu machen erforderlich Verwenden Sie pageViewController, wenn Sie möchten, können Sie einfach scrollView mit Multiplikatorwerten verwenden und Ausgabe erhalten –

+0

ja ... PageviewController sollte verwendet werden. – Zeona

+0

Abfrage ist gelöst? –

Antwort

0

Erhalten nächsten und vorherigen UIViewController

sollten Sie wissen, was die aktuelle Seite und die vorherige Seite/nächste Seite sind.

Beispiel:

@IBAction func onNext(btn:UIButton) { 
    let currentVC = self 
    let nextVC = getNextVC(from: currentVC)//implement it! 
    // do stuff... (turn page) 
} 

Abbiegeinformationsseite

Dies ist sehr einfach, UIPageViewController eine solche Funktion zur Verfügung stellt.

Beispiel:

pageViewController.setViewControllers([nextVC], direction: .forward, animated: true, completion: nil) 
+0

Vielen Dank für Ihre Antwort. Wie ich neu bei Swift bin, weiß ich nicht, wie ich das umsetzen soll. Kannst du bitte Erklären? – Zeona

1

hier Sie es wie mit den Buttons kann:

func addUIButton(){ 
     //next button 
     let myButton = UIButton() 
     myButton.setTitle("Next", for: UIControlState.normal) 
     myButton.setTitleColor(UIColor.red, for: .normal) 
     myButton.frame = CGRect(x: self.view.frame.size.width - 50, y: self.view.frame.size.height/2 - 50, width: 50, height: 50) 
     myButton.addTarget(self, action: #selector(pagesViewController.pressed(sender:)), for: .touchUpInside) 
     self.view.addSubview(myButton) 
     self.view.bringSubview(toFront: myButton) 
    } 
    func addSecondUIButton(){ 
     //previous button 
     let myButton = UIButton() 
     myButton.setTitle("Previous", for: UIControlState.normal) 
     myButton.setTitleColor(UIColor.red, for: .normal) 
     myButton.frame = CGRect(x: 20, y: self.view.frame.size.height/2 - 50, width: 100, height: 50) 
     myButton.addTarget(self, action: #selector(pagesViewController.Secondpressed(sender:)), for: .touchUpInside) 
     self.view.addSubview(myButton) 
     self.view.bringSubview(toFront: myButton) 
    } 

Button-Handler:

func pressed(sender: UIButton!) { //next button 
     switch VC.CurrentVC { 
     case page1: 
      VC.CurrentVC = page2 
      getNextVC(newIndex: page2) 

      break 
     case page2: 
      VC.CurrentVC = page3 
      getNextVC(newIndex: page3) 

      break 
     case page3: 
      VC.CurrentVC = page1 
      getNextVC(newIndex: page1) 

      break 
     default: 
      VC.CurrentVC = page1 
      getNextVC(newIndex: page1) 

     } 
    } 
    func Secondpressed(sender: UIButton!) { //previous button 
     switch VC.CurrentVC { 
     case page1: 
      VC.CurrentVC = page3 
      getNextVC(newIndex: page3) 

      break 
     case page3: 
      VC.CurrentVC = page2 
      getNextVC(newIndex: page2) 

      break 
     case page2: 
      VC.CurrentVC = page1 
      getNextVC(newIndex: page1) 

      break 
     default: 
      VC.CurrentVC = page1 
      getNextVC(newIndex: page1) 

     } 
    } 

Methode, die

func getNextVC(newIndex: UIViewController){ 

     setViewControllers([newIndex], direction: UIPageViewControllerNavigationDirection.forward, animated: false, completion: nil) 
    } 
zu nextVC bewegen Griffe

Struct Klasse: // aktuelle vc speichern

import Foundation 

import UIKit 

struct VC { 
    static var CurrentVC = UIViewController() 
} 

Demo Projekt Link - https://drive.google.com/open?id=1pWLMcU2eny65zqdjxOMbnry2FwhkRjye

Für Referenzprüfung Link

Output Screenshot enter image description here

Verwandte Themen