I have overridden my UINavigationController to implement these methods:
-(BOOL)shouldAutorotate
{
return [[self.viewControllers lastObject] shouldAutorotate]
First, make sure you've clicked the orientation buttons in Xcode to enable the orientations you want. Then spend a few hours Googling all the bugs and problems people have encountered with iOS 6. And a few more hours experimenting with various techniques.
This post contains a few clues, but is far from the final word in the matter.
Note in particular that you now must identify the "root view controller" and concentrate most (but not all) of the rotation controls there, vs implementing it in each view controller.