2016-11-24 4 views
-1

Ich versuche, eine UIPageViewController zu implementieren und ich erhalte die folgenden Fehler: Mein Code ist der folgendeUIPageViewController - entspricht nicht Protokoll

import UIKit 

class ShopViewController: UIPageViewController, UIPageViewControllerDataSource { 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    } 

    override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    } 
} 

Was mich einen Fehler gibt, der sagt: ShopViewController entspricht nicht Protokoll UIPageViewControllerDataSource.

So fand ich ein anderer Thread darauf hindeutet, dass ich die folgenden Funktionen hinzufügen:

func pageViewController(pageViewController: UIPageViewController,  viewControllerAfterViewController viewController: UIViewController) -> UIViewController? 

func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? 

Nachdem ich so meinen Code ist jetzt:

class ShopViewController: UIPageViewController, UIPageViewControllerDataSource { 

    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? 

    func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? 

    override func viewDidLoad() { 
    super.viewDidLoad() 

    } 

    override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    } 
    } 

Aber ich bekomme immer noch eine Fehlermeldung, die gleiche + erwartet {in Körper der Funktionsdeklaration, wo ich die 2 neuen Funktionen hinzufügte.

Kann jemand helfen?

+0

Alles, was Sie getan haben, ist einige Funktionen zu definieren, die im Protokoll erscheinen. Sie müssen tatsächlich * Implementierungen * jener Funktionen hinzufügen, die das tun, was Sie wollen. Ie. Fügen Sie Code hinzu, der die nächsten/vorherigen Ansichts-Controller zurückgibt. – Paulw11

+0

okay danke! –

Antwort

1

Sie müssen es so verwenden, wie Sie UIPageViewController verwenden und implementieren nicht die Delegatmethoden viewControllerAfter und viewControllerBefore von UIPageViewController das ist, warum diese Fehler bekommen.

class ShopViewController: UIPageViewController, UIPageViewControllerDataSource { 

    func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? { 
     // Returns the view controller after the given view controller. 
     return self 
    } 

    func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? { 
     // Returns the view controller before the given view controller. 

     return self 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 
} 
Verwandte Themen