一種方式是通過重寫preferredInterfaceOrientationForPresentation
但是爲了要做到這被稱爲的viewController必須呈現(如模式),而不是推提到here:
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
NSLog(@" preferred called");
return UIInterfaceOrientationPortrait;
}
爲了在UINavigationController中顯示你的viewController,使用:
UINavigationController *presentedNavController = [[UINavigationController alloc] initWithRootViewController:protraitViewController];
[self presentViewController:presentedNavController animated:YES completion:nil];
要讓UINavigationController尊重你的c urrent viewController的方向首選項使用這個簡單的category而不是子分類。
此外,蘋果的文檔的這part是一個很好的閱讀,以更好地理解iOS的方向處理。
可能重複的[IOS 6強制設備方向到橫向](http://stackoverflow.com/questions/12640870/ios-6-force-device-orientation-to-landscape) – 2013-04-22 18:26:29