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

时间:2015-03-14 08:04:53

标签: ios objective-c xcode uiviewcontroller auto-rotation

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

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

似乎是合乎逻辑的,但它不起作用。收到错误消息:

没有setter方法'setShouldAutorotate:'用于分配属性

或者只能通过子类化吗?

1 个答案:

答案 0 :(得分:0)

你应该这样:

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}
  

返回值

     

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

     

讨论

     

当用户更改设备方向时,系统   在根视图控制器或最顶层的控件上调用此方法   查看填充窗口的控制器。如果视图控制器支持   新的方向,窗口和视图控制器旋转到   新方向。仅在视图控制器中调用此方法   shouldAutorotate方法返回YES。

     

重写此方法以报告视图的所有方向   控制器支持。视图控制器的默认值   支持的接口方向设置为   UIInterfaceOrientationMaskAll用于iPad的习语和   用于iPhone习语的UIInterfaceOrientationMaskAllButUpsideDown。

     

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

来源:UIViewController on iOS Developer Library