I ran into a similar problem. My solution was to move my orientation processing code to a separate method and call both rotation methods and viewWillAppear:
//.h @interface SomeViewController - (void)layoutForInterfaceOrientation:(UIInterfaceOrientation)orientation; @end //.m @implementation SomeViewController - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; UIInterfaceOrientation currentOrientation = [[UIApplication sharedApplication] statusBarOrientation]; [self layoutForInterfaceOrientation:currentOrientation]; } - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toOrientation duration:(NSTimeInterval)duration { [self layoutForInterfaceOrientation:toOrientation]; } - (void)layoutForInterfaceOrientation:(UIInterfaceOrientation)orientation { // layout views } @end
source share