I have a navigation controller holding a view controller that only supports the portrait orientation:
This presents a full-screen view controller that only supports landscape:
Unfortunately during the transition, the status bar on the presenting view controller is removed, which makes the content jerk up before the transition begins. I've implemented a custom fade transition to make the effect obvious:
Note that the status bar is not present. This is done before the custom transition starts, with no animation, so even if I take a snapshot before the transition begins and add it to the container view, you still see the reduced navigation bar momentarily.
Is there a non-terrible way to fix this? I don't want to have to add the snapshot outside of the transition (like this answer).
I have tried making the presentation style custom instead of full-screen, but this doesn't leave the device in the portrait orientation. A solution using a custom presentation style which leaves the device in the landscape orientation would also be acceptable.
There is a sample project demonstrating the problem here