This tutorial lets you create a pageviewcontroller using latest xcode 9 and swift.
Step 1:
Setup storyboard.
The first viewcontroller is having container view, the place for putting our page viewcontroller.
Don't forget to embbed pageviewcontroller to container view of initial viewcontroller
Step 2: In your third viewcontroller class. Create one variable index.
Step 3: In your PageController subclass create one method to get viewcontroller from index.
Step 4: Delegate methods for uipageviewcontroller
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
}
Thats it!!
Step 1:
Setup storyboard.
The first viewcontroller is having container view, the place for putting our page viewcontroller.
Don't forget to embbed pageviewcontroller to container view of initial viewcontroller
Step 2: In your third viewcontroller class. Create one variable index.
class OverviewVC: UIViewController {var index: Int = 0
override func viewDidLoad() {super.viewDidLoad()}
Step 3: In your PageController subclass create one method to get viewcontroller from index.
func viewControllerAtIndex(Index: Int) -> OverviewVC {
let vc = OverviewVC()
switch Index {
case 0:
vc.view.backgroundColor = UIColor.red
case 1:
vc.view.backgroundColor = UIColor.blue
case 3:
vc.view.backgroundColor = UIColor.green
default:
vc.view.backgroundColor = UIColor.yellow
}
vc.index = Index
return vc
}
Add delegate and data source to classclass OverviewPageVC: UIPageViewController, UIPageViewControllerDelegate, UIPageViewControllerDataSource {
...
Add this code to your viewdidload method
self.dataSource = self
var overviewVC = OverviewVC()
overviewVC = self.viewControllerAtIndex(Index: 0)
self.setViewControllers([overviewVC], direction: .forward, animated: true, completion: nil)
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
let currentVC = OverviewVC()
var index = currentVC.index
index = index - 1
return self.viewControllerAtIndex(Index: index)
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
let currentVC = OverviewVC()
var index = currentVC.index
index = index + 1
return self.viewControllerAtIndex(Index: index)
Thats it!!


