Voyager Voyager - 1 year ago 270
Swift Question

Disable UIPageViewController Swipe - Swift

In my project i use UIPageViewController to swipe between 5 child UIViewController. In some of child view controller, i need to disable the swipe gesture of the UIPageViewController so when user swipe it not change to other view.
So how i can disable the swipe from the child view controller?

Appreciate for help..thanks

Answer Source

In your page view controller, add following

override func viewDidLoad(){
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(yourpageviewcontroller.enableSwipe(_:)), name:"enableSwipe", object: nil)
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(yourpageviewcontroller.disableSwipe(_:)), name:"disableSwipe", object: nil)

func disableSwipe(notification: NSNotification){
    self.dataSource = nil

func enableSwipe(notification: NSNotification){
    self.dataSource = self

In your child view controller, you can just post notification by following.

NSNotificationCenter.defaultCenter().postNotificationName("enableSwipe", object: nil)


NSNotificationCenter.defaultCenter().postNotificationName("disableSwipe", object: nil)
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download