This code works together with Swift & Storyboarding (in the View Controller): 
import UIKit
class ViewController : UIViewController, UIPageViewControllerDataSource {
    var myViewControllers = Array(count: 3, repeatedValue:UIViewController())
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
        let pvc = segue.destinationViewController as UIPageViewController
        pvc.dataSource = self
       let storyboard = UIStoryboard(name: "Main", bundle: nil);
        var vc0 = storyboard.instantiateViewControllerWithIdentifier("shopID") as UIViewController
        var vc1 = storyboard.instantiateViewControllerWithIdentifier("startID") as UIViewController
        var vc2 = storyboard.instantiateViewControllerWithIdentifier("avatarID") as UIViewController
        self.myViewControllers = [vc0, vc1, vc2]
        pvc.setViewControllers([myViewControllers[1]], direction:.Forward, animated:false, completion:nil)
        println("Loaded")
    }
    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
        var currentIndex =  find(self.myViewControllers, viewController)!+1
        if currentIndex >= self.myViewControllers.count {
            return nil
        }
        return self.myViewControllers[currentIndex]
    }
    func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
        var currentIndex =  find(self.myViewControllers, viewController)!-1
        if currentIndex < 0 {
            return nil
        }
        return self.myViewControllers[currentIndex]
    }
}