我正在开发的iPhone应用程序中有一个奇怪的问题。我希望我的应用程序支持 ONLY 纵向模式,但出于某种原因我不能这样做(设备和模拟器)。
为了仅支持肖像模式,我按照以下步骤操作:
shouldAutorotateToInterfaceOrientation
但正如我所说它不起作用,奇怪的结果是应用程序支持 ALL 方向(纵向,倒置,左侧景观,右侧景观)。
有任何想法吗?
这是我如何实施shouldAutorotateToInterfaceOrientation
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
NSLog(@"Checking orientation %d", interfaceOrientation);
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
我刚刚注意到,当我旋转手机时,我收到此消息:
“不推荐使用两阶段旋转动画。此应用程序应该 使用更流畅的单级动画。“
这意味着什么?
答案 0 :(得分:9)
在目标摘要上,选择仅限肖像。
答案 1 :(得分:4)
转到info.plist文件。右键单击将其作为源代码打开。并寻找这条线。对我来说,iPad就像这样:
<key>UISupportedInterfaceOrientations~ipad</key>
删除所有其他方向,并保留唯一需要的方向。就像这样:
<array>
<string> UIInterfaceOrientationPortrait </string>
</array>
答案 2 :(得分:4)
屏幕上可以有多个ViewControllers。 UITabBarController
本身就是UIViewController
,如果它选择的话,它只会将shouldAutorotateToInterfaceOrientation:
个请求传递给viewControllers。默认实现执行此操作,但如果您将其子类化,则XCode生成的代码(从iOS 5.1开始)不会。
答案 3 :(得分:2)
检查您的plist并确保其中的键设置正确。