RootViewController animation transition, initial orientation is wrong RootViewController animation transition, initial orientation is wrong ios ios

RootViewController animation transition, initial orientation is wrong


I looked into this just now because I kept getting the same issue. I randomly tried the following, and it worked perfectly:

[UIView    transitionWithView:window     duration:0.5    options:UIViewAnimationOptionTransitionCrossDissolve    animations:^(void) {        BOOL oldState = [UIView areAnimationsEnabled];        [UIView setAnimationsEnabled:NO];        [(ICApp *)sharedApplication.delegate window].rootViewController = self;        [UIView setAnimationsEnabled:oldState];    }     completion:nil];

I know it's a bit odd to disable/enable animations inside an animation block, but the cross dissolve animates, and the rotation does not -- the view controller appears already rotated and ready to roll.


Just put in another animation option UIViewAnimationOptionAllowAnimatedContent:

[UIView transitionWithView:self.window duration:0.5 options:(UIViewAnimationOptionTransitionFlipFromLeft | UIViewAnimationOptionAllowAnimatedContent) animations:^{    self.window.rootViewController = newViewController;} completion:nil];