如何在iOS 6中强制将UIViewController设置为竖屏方向

86

由于在iOS 6中ShouldAutorotateToInterfaceOrientation已被弃用,而我之前使用它来强制一个特定的视图仅支持竖屏,那么在iOS 6中正确的做法是什么?这仅适用于我的应用程序中的一个区域,所有其他视图都可以旋转。

16个回答

0

0
我自己没有测试过,但文档中指出现在可以重写这些方法:supportedInterfaceOrientationspreferredInterfaceOrientationForPresentation
你可以通过在这些方法中设置你所需的方向来实现你想要的结果。

0

使用子类或分类来允许 UINavigationController 和 UITabBarController 类中的 VC 正常工作是很好的解决方案。从横向标签栏控制器启动仅支持纵向的模态视图失败了。如果您需要这样做,那么请使用显示和隐藏非动画模态视图的技巧,但在 viewDidAppear 方法中执行。在 viewDidLoad 或 viewWillAppear 中对我不起作用。

除此之外,上述解决方案都可以正常工作。


-1

只需前往project.plist,然后添加Supported interface orientation,然后仅添加Portrait(底部Home按钮)和Portrait(顶部Home按钮)。

您可以根据项目要求添加或删除方向。

谢谢。


1
这是关于特定视图控制器的内容,而不是整个应用程序。 - Muhammad Rizwan

-2

1) 检查您的项目设置和info.plist文件,确保只选择了您想要的方向。

2) 将以下方法添加到您的最顶层视图控制器(导航控制器/标签栏控制器)中:

- (NSUInteger) supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;

}

3) 将以下方法添加到您的应用程序委托中

- (NSUInteger) supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;

}

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return UIInterfaceOrientationMaskPortrait;

}

-3
将以下代码放入每个您不想旋转的 ViewController 的 .m 文件中:
- (NSUInteger)supportedInterfaceOrientations
{
    //return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft;
    return UIInterfaceOrientationMaskPortrait;
}

请查看此处以获取更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接