iamalizade

Untitled

Jan 5th, 2016
377
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 3.49 KB | None | 0 0
  1. import UIKit
  2.  
  3. class TourViewController: UIViewController, UIPageViewControllerDataSource {
  4.     private var pageViewController: UIPageViewController?
  5.    
  6.     @IBOutlet var pageViewer: UIView!
  7.     // Initialize it right away here
  8.     private let contentImages = ["real-pixels.png",
  9.         "real-pixels.png",
  10.         "real-pixels.png"]
  11.    
  12.     override func viewDidLoad() {
  13.         super.viewDidLoad()
  14.  
  15.         // Do any additional setup after loading the view.
  16.         createPageViewController()
  17.         setupPageControl()
  18.     }
  19.    
  20.     override func didReceiveMemoryWarning() {
  21.         super.didReceiveMemoryWarning()
  22.         // Dispose of any resources that can be recreated.
  23.     }
  24.  
  25.     private func createPageViewController() {
  26.        
  27.         let pageController = self.storyboard!.instantiateViewControllerWithIdentifier("PageController") as! UIPageViewController
  28.         pageController.dataSource = self
  29.        
  30.         if contentImages.count > 0 {
  31.             let firstController = getItemController(0)!
  32.             let startingViewControllers: NSArray = [firstController]
  33.             pageController.setViewControllers(startingViewControllers as! [UIViewController], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)
  34.         }
  35.        
  36.         pageViewController = pageController
  37.         addChildViewController(pageViewController!)
  38.         self.view.addSubview(pageViewController!.view)
  39.         pageViewController!.didMoveToParentViewController(self)
  40.     }
  41.    
  42.     private func setupPageControl() {
  43.         let appearance = UIPageControl.appearance()
  44.         appearance.pageIndicatorTintColor = UIColor.grayColor()
  45.         appearance.currentPageIndicatorTintColor = UIColor.whiteColor()
  46.         appearance.backgroundColor = UIColor.darkGrayColor()
  47.     }
  48.    
  49.     // MARK: - UIPageViewControllerDataSource
  50.    
  51.     func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
  52.        
  53.         let itemController = viewController as! ContentViewController
  54.        
  55.         if itemController.itemIndex > 0 {
  56.             return getItemController(itemController.itemIndex-1)
  57.         }
  58.        
  59.         return nil
  60.     }
  61.    
  62.     func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
  63.        
  64.         let itemController = viewController as! ContentViewController
  65.        
  66.         if itemController.itemIndex+1 < contentImages.count {
  67.             return getItemController(itemController.itemIndex+1)
  68.         }
  69.        
  70.         return nil
  71.     }
  72.    
  73.     private func getItemController(itemIndex: Int) -> ContentViewController? {
  74.        
  75.         if itemIndex < contentImages.count {
  76.             let pageItemController = self.storyboard!.instantiateViewControllerWithIdentifier("ContentController") as! ContentViewController
  77.             pageItemController.itemIndex = itemIndex
  78.             pageItemController.imageName = contentImages[itemIndex]
  79.             return pageItemController
  80.         }
  81.        
  82.         return nil
  83.     }
  84.    
  85.     // MARK: - Page Indicator
  86.    
  87.     func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int {
  88.         return contentImages.count
  89.     }
  90.    
  91.     func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
  92.         return 0
  93.     }
  94.  
  95. }
Advertisement
Add Comment
Please, Sign In to add comment