Search code examples
iosswiftswift2uipageviewcontroller

UIPageViewController Definition conflicts with previous value


My App uses a UIPageViewController. I am getting a Definition conflicts with previous value error for my when i put in the following two functions

   func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
        return nil
    }

    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
        return nil
    }

These functions are needed in order to get rid of the "does not conform to UIPageViewControllerDataSource"

The complete code is:

import UIKit

class Root: UIPageViewController, UIPageViewControllerDataSource  {

    override func viewDidLoad() {
        super.viewDidLoad()

        self.dataSource = self
    }

    func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
        return nil
    }

    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
        return nil
    }
} 

Solution

  • Try removing the functions from viewDidLoad and putting them to the class body :).

    import UIKit
    
    class Root: UIPageViewController, UIPageViewControllerDataSource  {
        override func viewDidLoad() {
            super.viewDidLoad()
    
            self.dataSource = self
        }
    
        func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
            return nil
        }
    
        func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
            return nil
        }
    }