在创建时停止UIViewController的自动旋转

有什么办法可以在启动时设置UIViewController对象的自动旋转行为吗? 我想它永远不会旋转,所以我尝试了这个:

UIViewController *myViewController = [[UIViewController alloc]init];
myViewController.shouldAutorotate = NO;

看似合乎逻辑,但不起作用。 获取错误信息:

没有设置方法'setShouldAutorotate:'分配给财产

或者只有通过子类化才有可能?


你应该这样:

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}

返回值

指定支持哪些方向的位掩码。 有关位掩码值,请参阅UIInterfaceOrientationMask。 此方法返回的值不能为0。

讨论

当用户更改设备方向时,系统将在根视图控制器或填充窗口的最顶层呈现视图控制器上调用此方法。 如果视图控制器支持新的方向,则窗口和视图控制器将旋转到新的方向。 只有在视图控制器的shouldAutorotate方法返回YES时才调用此方法。

覆盖此方法以报告视图控制器支持的所有方向。 视图控制器支持的界面方向的默认值被设置为UI成语的UIInterfaceOrientationMaskAll和iPhone成语的UIInterfaceOrientationMaskAllButUpsideDown。

系统将视图控制器支持的方向与应用程序支持的方向(由Info.plist文件或应用程序委托的应用程序:supportedInterfaceOrientationsForWindow:方法确定)相交以确定是否旋转。

来源:iOS开发人员库的UIViewController。

链接地址: http://www.djcxy.com/p/58359.html

上一篇: Stop autorotation of UIViewController at creation time

下一篇: iOS 8.1 Simulator Localization broken (NSLocalizedString)