I have a UIPageViewController that displays images. I’ve set an opportunity to mail a desired image that the user is currently viewing. For this if user taps once the central region of the screen a tab bar appears with a bar button item titled “Mail”. And when this button is pressed the imaged is attached to a mail composer. But I have a little problem here: As the bar button is on the left edge when I tap it page curl takes place and I can’t get the mail composer-more precisely I can’t get the button tapped. How would I prevent page curl when this button is pressed?
I have a UIPageViewController that displays images. I’ve set an opportunity to mail a
Share
There are several ways you can overcome this problem. The second solution is easier to implement.
The first one is to access the gesture recognizers defined for the page view controller (from the “gestureRecognizers” property, which returns an array of gesture recognizers), search for the “tap type” gestures and then assign them a delegate to your view controller. This delegate will implement the method
and will check if the tap occurred in the tab bar position and will return NO in such case, so the gesture will not be triggered. Your delegate will return YES if you still want the tap but it is outside the tab bar region.
Another possibility is to define a new tap gesture recognizer and assign it to the tab bar. In such case when you tap over the button (which is in the tab bar) the target selector that you assigned to your tap gesture will be triggered. Clearly, this selector will do nothing as its purpose is just to avoid propagation to the gestures which are beyond it (this is the default behavior).
I think my answer came too late from your request, so if you have found a better solution please post it!