UIPageViewController gets unresponsive after a vertical swipe

I'm experimenting a weird behavior with an UIPageViewController. It uses page curl transition and horizontal orientation (spine min). I use it to present pages containing textviews, textfields and buttons. Everything works as it should. The controls are getting its touches and so, but sometimes the pageviewController stops responding to page changes. The buttons and textviews keep work fine but I'm unable to turn pages by sliding nor tapping edges. After a while I realized this happened everytime I swipe otherwise than horizontally. I mean, if I slide in diagonal or I make a direction change involving vertical axis it won't turn pages anymore.


This issue only happens when using page curl transition. Everything works fine with default scroll transition. Is this a bug? I'm I missing something? Is there any way to stop the pageController detecting vertical axis movement?


Thanks

Accepted Reply

Solved! It turns it wasn't the pageViewController itself. I had set a flag to avoid pages being turn too fast and when I swiped that way it returned nil from both previous and next view controllers in delegate methods, so there wasn't any pages to show.

Replies

I have a UIPageViewController using page curl transition and it works fine for me on my iPhone 6 (iOS 9.0.1) after vertical swipes. Perhaps you have some other gesture recognizer somewhere else in your hierarchy that is conflicting?

Thank you junkpile. I haven't got any gesture recognizer added to that controller but at least you confirmed that's not a bug. I'll keep trying to figure out what's happening

Solved! It turns it wasn't the pageViewController itself. I had set a flag to avoid pages being turn too fast and when I swiped that way it returned nil from both previous and next view controllers in delegate methods, so there wasn't any pages to show.

Hi Richie,


may i know what you exatcly did to solve this issue.

i got stuck in same situation where i m using vertical page curl and if i swipe fast, my page stops responding. I use the code from this link

How did you set a flag to detect when they are turning pages too fast? That might be useful to me.