supportedInterfaceOrientations设置在模拟器中正常工作吗?

时间:2016-02-23 16:15:36

标签: ios

我有一个项目,其中所有视图都只是纵向,除了一个只有横向而没有自动旋转的视图。 我在项目设置中将支持的方向设置为纵向和横向。然后我为每个视图控制器设置这些函数:

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return UIInterfaceOrientationLandscapeLeft; // or Right of course
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscape;
}

-(BOOL)shouldAutorotate
{
    return NO;
}

但它不起作用。模拟器允许所有视图旋转,并且似乎完全忽略设置。 我做错了什么,或者它是模拟器中的错误?

2 个答案:

答案 0 :(得分:1)

最有可能的问题是你在info.plist中定义了允许的方向,它覆盖了代码中指定的任何内容。

因此,您可能需要从info.plist中删除条目。

答案 1 :(得分:0)

我最后不得不使用一些黑客来使它工作: 我把这一行放在viewDidLoad中: self.view.transform = CGAffineTransformMakeRotation(M_PI / 2); 现在一切正常