In fact , the way you show this special view controller make your view unable to change orientation , because when device change orientation , it ask your key window's rootController whether it can orientate or not , and in your situation , you return landscape so your window only support landscape mode.
So maybe you should present it from your navigationController without animation . than implement - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
in your special view controller.
Further reading: Understand ViewController Orientation