Be sure that you're only calling dismissModalViewControllerAnimated:
once.
I have found that asking to dismiss each stacked modal view controller will cause both of them to animate.
You have: A =modal> B =modal> C
You should only call [myViewControllerA dismissModalViewControllerAnimated:YES]
If you use [myViewControllerB dismissModalViewControllerAnimated:YES]
, it will dismiss C, and not B. In normal (unstacked) use, it would dismiss B (due to the responder chain bubbling the message up to A). In the stacked scenario that you describe B is a parent view controller and this takes precedence over being a modal view controller.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…