我在使用 iOS 6 SDK 时遇到了这个问题:我有一些应该允许旋转的视图(例如视频视图),而有些则不允许。现在我知道我必须检查应用程序的 Info.plist 中的所有方向,然后在每个 ViewController 中进行排序,应该发生什么。但它不起作用!应用程序始终旋转到 Info.plist 中给出的方向。
信息列表:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
任何不应被允许旋转的 ViewController:
//deprecated
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
观察:应用旋转到横向和纵向。任何想法为什么或我做错了什么?
干杯,马克
编辑:我的最新发现还表明,如果您想在应用程序中的某个位置进行旋转,则必须在项目设置或 Info.plist 中激活所有四个旋转方向。对此的替代方法是覆盖
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
在您的 AppDelegate 中,它会覆盖 Info.plist。不再可能在 Info.plist 中仅设置 Portrait,然后通过覆盖 shouldAutorotateToInterfaceOrientation 或 supportedInterfaceOrientations 在某些 ViewController 中进行旋转。