Skip to content

Page ViewController 2

Mohammad Azmal Hossain edited this page Sep 19, 2017 · 1 revision

import UIKit

class MyPageViewController: UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {

var pages = [UIViewController]()

var pageController: UIPageViewController?

override func viewDidLoad() {
    super.viewDidLoad()
    
    self.view.backgroundColor = .yellow
    
    self.delegate = self
    self.dataSource = self
    
    let page1 = PurpleViewController()
    let page2 = GreenViewController()
    let page3 = OrangeViewController()
    let page4 = UIViewController()

    
    pages.append(page1)
    pages.append(page2)
    pages.append(page3)
    pages.append(page4)
    

    
    setViewControllers([page1], direction: UIPageViewControllerNavigationDirection.forward, animated: false, completion: nil)
}

func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
    let currentIndex = pages.index(of: viewController)!
    let previousIndex = abs((currentIndex - 1) % pages.count)
    return pages[previousIndex]
}

func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
    let currentIndex = pages.index(of: viewController)!
    let nextIndex = abs((currentIndex + 1) % pages.count)
    return pages[nextIndex]
}

func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int {
    return pages.count
}

func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
    return 0
}

}

class GreenViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    
    view.backgroundColor = .green
    
}

}

class OrangeViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    
    
    view.backgroundColor = .orange
    
}

}

class PurpleViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = .purple
    
}

}

Clone this wiki locally