Skip to content

Instantly share code, notes, and snippets.

@ivangodfather
Created February 9, 2015 22:46
Show Gist options
  • Save ivangodfather/28144bc40178decfb037 to your computer and use it in GitHub Desktop.
Save ivangodfather/28144bc40178decfb037 to your computer and use it in GitHub Desktop.
class TutorialViewController: UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {
var images: [String]!
override func viewDidLoad() {
super.viewDidLoad()
images = ["0","1","2"]
self.delegate = self
self.dataSource = self
let startingViewController: PageContentViewController! = viewControllerAtIndex(0)
let viewControllers: NSArray = [startingViewController]
var currentIndex : Int = 0
setViewControllers(viewControllers, direction: .Forward, animated: false, completion: nil)
// Do any additional setup after loading the view.
}
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController?
{
var index = (viewController as PageContentViewController).pageIndex
if (index == 0) || (index == NSNotFound) {
return nil
}
index--
return viewControllerAtIndex(index)
}
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController?
{
var index = (viewController as PageContentViewController).pageIndex
if index == NSNotFound {
return nil
}
index++
if (index == images.count) {
return nil
}
return viewControllerAtIndex(index)
}
func viewControllerAtIndex(index: Int) -> PageContentViewController?
{
if images.count == 0 || index >= images.count
{
return nil
}
// Create a new view controller and pass suitable data.
let pageContentViewController = storyboard?.instantiateViewControllerWithIdentifier("PageContentViewController") as PageContentViewController
pageContentViewController.imageFile = images[index]
pageContentViewController.pageIndex = index
return pageContentViewController
}
func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int
{
return images.count
}
func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int
{
return 0
}
}
-----
class PageContentViewController: UIViewController {
var imageFile: String!
var pageIndex : Int = 0
@IBOutlet weak var backgroundImageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
backgroundImageView.image = UIImage(named: imageFile!)
self.view.backgroundColor = kColorLightGray
// Do any additional setup after loading the view.
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment