Monday, November 13, 2017

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.

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 class 
 class 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)
Step 4: Delegate methods for uipageviewcontroller

             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!!



No comments:

Post a Comment