Objective-c 使用 UIInterfaceOrientationMask 来控制方向

Posted

技术标签:

【中文标题】Objective-c 使用 UIInterfaceOrientationMask 来控制方向【英文标题】:Objective-c using UIInterfaceOrientationMask to control orientation 【发布时间】:2017-01-12 21:52:53 【问题描述】:

我有一个带有 4 个视图控制器的应用程序。一个只能以横向模式呈现。其他 3 个可以是横向或纵向。

在我的部署信息区域“设备方向”中,我选中了“倒置”、“向左横向”和“向右横向”。 在 Info.plist 中,我有 3 个支持的界面方向:横向左、横向右和纵向顶部主页按钮。

在我只想要风景的视图控制器中,我有: -(BOOL) 应该自动旋转 返回是;

-(UIInterfaceOrientationMask) supportedInterfaceOrientations 
    return   UIInterfaceOrientationMaskLandscapeLeft+UIInterfaceOrientationMaskLandscapeRight;

在其他 3 个视图控制器中,我有: -(BOOL) 应该自动旋转 返回是;

-(UIInterfaceOrientationMask) supportedInterfaceOrientations 
    return UIInterfaceOrientationMaskAll;

使用所有这些设置: 1)应该只在风景中的视图只是在风景中,所以这很好。 2)其他3个视图可以通过顶部的按钮以横向左、横向右和纵向模式显示。 3) 当我尝试在另一个纵向位置旋转屏幕时,它不会旋转。

因此,我更改了部署页面或 Info.plist 页面以包含未选中的第四个选项。结果是其他 3 个视图旋转正常,但横向模式视图现在旋转为纵向。

我必须做些什么才能让我的第一个视图风景只和其他 3 个以任何方式旋转?

【问题讨论】:

【参考方案1】:

你可以使用这个链接来控制你的方向,这对我有用。

https://***.com/a/24928474/6438500

【讨论】:

感谢您的回复。 将代码剪切并粘贴到视图控制器中会产生 2 个关于使用未声明变量 appDelegate 的错误。 这里的appDelegate是AppDelegate的实例。你必须创建你的 AppDelegate 实例。

以上是关于Objective-c 使用 UIInterfaceOrientationMask 来控制方向的主要内容,如果未能解决你的问题,请参考以下文章

Objective-C 使用 C++类

使用Objective-C时的基本输入和输出是啥[关闭]

如何在c++中,调用objective-c

在 Objective-C 中使用异常

[精通Objective-C]内存管理

在objective-c中使用swift代码时的问题