做到这一点的一种方法是覆盖preferredInterfaceOrientationForPresentation
,但为了被称为 viewController 必须呈现(如在模式中),而不是像这里提到的那样推送:
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
NSLog(@" preferred called");
return UIInterfaceOrientationPortrait;
}
为了在 UINavigationController 中显示您的 viewController,请使用:
UINavigationController *presentedNavController = [[UINavigationController alloc] initWithRootViewController:protraitViewController];
[self presentViewController:presentedNavController animated:YES completion:nil];
为了使 UINavigationController 尊重您当前的 viewController 的方向偏好,请使用这个简单的类别而不是子类。
此外,Apple 文档的这一部分对于更好地理解 iOS 方向处理来说是一本很好的读物。