I have use the Xcode 4.5.1 and use this conditions
#define IOS_OLDER_THAN_6 ( [ [ [ UIDevice currentDevice ] systemVersion ] floatValue ] < 6.0 ) #define
There is another way - without setting allowed orientation:
Try this solution - it works on iOS 5 and iOS 6.
UINavigationController Force Rotate
Then, You can implement shouldRotate .. delegate methods, to allow it to rotate only between landscape orientations.
Good luck!