Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- class TourViewController: UIViewController, UIPageViewControllerDataSource {
- private var pageViewController: UIPageViewController?
- @IBOutlet var pageViewer: UIView!
- // Initialize it right away here
- private let contentImages = ["real-pixels.png",
- "real-pixels.png",
- "real-pixels.png"]
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view.
- createPageViewController()
- setupPageControl()
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
- private func createPageViewController() {
- let pageController = self.storyboard!.instantiateViewControllerWithIdentifier("PageController") as! UIPageViewController
- pageController.dataSource = self
- if contentImages.count > 0 {
- let firstController = getItemController(0)!
- let startingViewControllers: NSArray = [firstController]
- pageController.setViewControllers(startingViewControllers as! [UIViewController], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)
- }
- pageViewController = pageController
- addChildViewController(pageViewController!)
- self.view.addSubview(pageViewController!.view)
- pageViewController!.didMoveToParentViewController(self)
- }
- private func setupPageControl() {
- let appearance = UIPageControl.appearance()
- appearance.pageIndicatorTintColor = UIColor.grayColor()
- appearance.currentPageIndicatorTintColor = UIColor.whiteColor()
- appearance.backgroundColor = UIColor.darkGrayColor()
- }
- // MARK: - UIPageViewControllerDataSource
- func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
- let itemController = viewController as! ContentViewController
- if itemController.itemIndex > 0 {
- return getItemController(itemController.itemIndex-1)
- }
- return nil
- }
- func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
- let itemController = viewController as! ContentViewController
- if itemController.itemIndex+1 < contentImages.count {
- return getItemController(itemController.itemIndex+1)
- }
- return nil
- }
- private func getItemController(itemIndex: Int) -> ContentViewController? {
- if itemIndex < contentImages.count {
- let pageItemController = self.storyboard!.instantiateViewControllerWithIdentifier("ContentController") as! ContentViewController
- pageItemController.itemIndex = itemIndex
- pageItemController.imageName = contentImages[itemIndex]
- return pageItemController
- }
- return nil
- }
- // MARK: - Page Indicator
- func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int {
- return contentImages.count
- }
- func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
- return 0
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment