I created simple app with two VCs.
I open second VC from first via button. Seque is "Present Modally" and transition is "Partion Curl". This scheme works fine on iOS7, but on iOS8 first VC's view disappeares in the end of curl animation:
I have the same problem. I saw it in Xcode 6 (beta 7) + iOS 8 (beta 5). Still present in GM seed of both.
iOS 7.1 Specifics:
It is called a "partial curl" and on iOS 7 it displays as such (e.g. Partial - you can still see a portion of the originating view along the top of the window). On iOS 7 - when you tap on this partially exposed, "original" view, the view unwindes back to the full window of the origional.
iOS 8 Specifics:
The segue does NOT leave any of the original showing. And any tap, anywhere on the window/screen, returns the originating view via an automatic unwind. If you have a UITextField on the view, when you tap on it to enter a value … the originating view returns without triggering any of the associated UITextField methods. No keyboard is displayed, it simply unwinds to the originating view.
It appears to me, that touch definition associated with what should be a partially displayed corner of the original view is instead mis-defined as the entire window.
Of course, I'm very new to iOS programming, so my insight, if accurate, does not give me a clue as to how to workaround it! LOL I'm hoping that someone out there will have the knowledge to at least provide a usable workaround.
Jim
P.S. I don't yet have enough reputation points to vote or comment, hence my answer that isn't an answer.
This is either a bug, or (IMHO) an indication from Apple that this ModalTransitionStyle is about to be deprecated. Since it is probably the last vestige of pseudomorphism, I think that's a safe bet that it is short for this world. I was debugging an issue for hours with regards to inconsistent touches on a modally presented viewcontroller, using this transition and pulling my hair out. I switched to another modal transition style and POOF - all issues caused by iOS8 are gone.
Keith
simple solution to the this problem is.
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
for(UIGestureRecognizer *gesture in [self.view gestureRecognizers])
{
if([gesture isKindOfClass:[UIGestureRecognizer class]])
{
[self.view removeGestureRecognizer:gesture];
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With