EMPageViewController 4.0.0

EMPageViewController 4.0.0

LangLanguage SwiftSwift
License MIT
ReleasedLast Release Dec 2019
SPMSupports SPM

Maintained by Erik Malyak, Erik Malyak.


EMPageViewController Demo

A better page view controller for iOS

EMPageViewController is a full replacement for UIPageViewController with the features and predictability you’ve always wanted from a page view controller.

Delegate messages every step of the way

EMPageViewController gives your delegate messages for every step of the page transition process: before, during, and after. This makes it very easy for you to incorporate animations or any other events that are highly dependent on the progress of transitioning a page.

Convenient navigation methods

In addition to the ability scroll to any view controller, you can also easily scroll to the next or previous page without gestures if your app has navigation buttons.

Written in Swift (with support for Objective-C)

EMPageViewController is not a subclass of UIPageViewController. Instead, it's a subclass of UIViewController with a UIScrollView, written in Swift, and it has common sense delegate and data source methods that will make the development of your page-based iOS app a breeze.


  • Xcode 10.0+
  • Swift 4.2+
  • Objective-C compatible
  • iOS 8+
  • iPhone, iPad, and iPod Touch


There are two ways to install. Please note that the CocoaPods method requires iOS 8+, whereas the file include method requires iOS 7+


To install using CocoaPods, specify the following in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

pod 'EMPageViewController'

File include

Simply include the file EMPageViewController.swift into your project.

Example usage / Demo

Learn how to use EMPageViewController in your project by cloning this repository and opening the Xcode project file in:

The code for initializing EMPageViewController and implementing its delegate and data source is located in:


Full documentation is available on CocoaDocs





Feedback? Suggestions? Just want to say hello? Contact me anytime on Twitter @emalyak. You can also visit my website erikmalyak.com for other ways to get in touch.


Copyright (c) 2015-2019 Erik Malyak

MIT License