Adjusting a landscape screen
I think that you can rewrite the code in a more OO way, with the help of an NSDictionary and setting up a sort of command pattern.

You can store a sum of the two enumerator value as a key of the Dictionary in this way : 

NSDictionary *dicAngles = [[NSDictionary alloc] initWithObjectsAndKeys: 
        (UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft), -(M_PI / 2.0),     (UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeRight), (M_PI / 2.0), 
(UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft), (M_PI / 2.0), 
(UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeRight), -(M_PI / 2.0),
 nil];


Once you have the dictionary you can avoid the if - else control flow in this way : 

 CGFloat angle = 0;
 //Retrieve the angle from the dictionary 
 angle = [dicAngles objectForKey: ( fromInterfaceOrientation + appOrientation )];


It is only an example and not tested, but could be a more elegant solution i think ...