In iOS 7, we do a custom animation transitioning into a new view controller, with the completion of the animation being:
[self.animatedView removeFromSuperview]; //superview == self.view, in this case
[self presentViewController:newController animated:NO completion:nil];
This works fine in <= IOS 7. We also do it while animating back to the original, with dismissViewController:. However, in iOS 8, both present and dismiss display a one frame black screen between the end of the animation and the appearance of the new view. Is there a way around this? Everything is already happening on the main thread.