如何在 iOS 8 中强制视图控制器方向?

2024-06-28

在 iOS 8 之前,我们结合使用以下代码支持的接口方向 and 应该自动旋转委托方法强制应用程序定向到任何特定方向。我使用下面的代码片段以编程方式将应用程序旋转到所需的方向。首先,我正在更改状态栏方向。然后,只需呈现并立即关闭模态视图即可将视图旋转到所需的方向。

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES];
UIViewController *c = [[UIViewController alloc]init];
[self presentViewController:vc animated:NO completion:nil];
[self dismissViewControllerAnimated:NO completion:nil];

但这在 iOS 8 中失败了。另外,我在堆栈溢出中看到了一些答案,人们建议我们从 iOS 8 开始应该始终避免这种方法。

更具体地说,我的应用程序是通用类型的应用程序。总共有三个控制器。

  1. 第一个视图控制器- 它应该支持 iPad 中的所有方向,并且在 iPhone 中仅支持纵向(主页按钮按下)。

  2. 第二个视图控制器- 它应该在所有条件下仅支持景观

  3. 第三视图控制器- 它应该在所有条件下仅支持景观

我们使用导航控制器进行页面导航。从第一个视图控制器中,通过单击按钮操作,我们将第二个视图控制器推入堆栈。因此,当第二个视图控制器到达时,无论设备方向如何,应用程序都应该仅锁定横向。

下面是我的shouldAutorotate and supportedInterfaceOrientations第二和第三视图控制器中的方法。

-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscapeRight;
}

-(BOOL)shouldAutorotate {
    return NO;
}

是否有任何解决方案或任何更好的方法将视图控制器锁定在 iOS 8 的特定方向。请帮忙!


对于 iOS 7 - 10:

Objective-C:

[[UIDevice currentDevice] setValue:@(UIInterfaceOrientationLandscapeLeft) forKey:@"orientation"];
[UINavigationController attemptRotationToDeviceOrientation];

Swift 3:

let value = UIInterfaceOrientation.landscapeLeft.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
UINavigationController.attemptRotationToDeviceOrientation()

只需调用它即可- viewDidAppear:所呈现的视图控制器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 iOS 8 中强制视图控制器方向? 的相关文章

随机推荐

  • 导出时的 Highcharts css 样式

    I have the following graph in digital See image but when using the Highchart s hamburguer CSS menu to export to PDF or J
  • java 允许使用函数式接口作为方法吗?

    有了新的 java lambda 和函数式接口的概念 是否可以将这些函数式接口视为方法 interface Func void execute int i void call Func f f 1 instead of f execute
  • 如何使用 Java 检测文件是否存在于 Google Drive 中(并且未被删除)?

    非常不言自明的标题 我正在使用适用于 Java 的 Google Drive Client Api 我目前拥有的内容如下 File f mService files get fileId execute 但是 我找不到该房产File用于检查
  • Android 日期选择器月份作为数字

    在 Android DatePicker 中 在某些操作系统中 月份显示为 Jan Feb Mar Dec 在其他操作系统中 月份显示为 1 2 3 12 有没有办法让它始终保持一致 以便它始终显示 1 2 3 12 作为月份 显示 1 2
  • 无法从innerHTML获取动态数据 - Angular

    我从我的视图或 HTML 中获取动态数据并将其放置在我的页面上 以便我可以查看所述数据的打印结果 我必须使用此方法 因为我正在使用此动态数据创建自己的打印页面 我使用的方法获取第一个初始值 而不是最新更新的 DOM 如果删除 innerHT
  • UIWebView webCore 在 iOS7.1 中崩溃(示例:www.latimes.com)

    当我打开 洛杉矶时报 www latimes com 时 我的 iOS 应用程序崩溃了 崩溃发生在 WebCore 的某个地方 但我不知道在哪里 使用 Zombie 或 leaks 进行分析不会针对此 EXE BAD ADDRESS 错误返
  • Symfony 3 - 自动序列化 DateTime 对象

    在我的项目中我有一些实体createdAt柱子 class Acme var DateTime ORM Column name created at type datetime protected createdAt 我已启用FOSRest
  • MySQL 中的 char / varchar / text / longtext 列是否在文件系统中占据完整大小,即使对于部分填充的单元格也是如此?

    MySQL 中的 varchar text longtext 列是否占据文件系统中的完整长度大小 即使对于不完整的单元格也是如此 参考这篇博客文章 http boolean co nz blog max length for mysql t
  • 跟踪代码的来源 (PHP)

    我正在浏览客户的服务器 运行疯狂的专有论坛 软件 vBulletin 甚至更糟糕的 SEO 模组 vbseo 我想不通 找出页面的 php 代码来自哪里 如何追踪这个 返回 PHP 页面的 URL http www example com
  • 64位Java无法通过ODBC访问32位MS Access数据库

    我有一台新的 64 位笔记本电脑 并安装了 STS 64 位和 Java 64 位 我正在尝试创建到 32 位 Microsoft 数据库的 ODBC 连接 但是默认的管理工具不提供访问驱动程序 经过谷歌搜索后 我发现 C Windows
  • 正则表达式“只分组,不捕获”似乎不起作用

    x abcdefg x x match ab cd ef x 不应该是 abef 吗 不是 它实际上是 abcdef 为什么我的 没有任何效果 当然我的理解很可能是错误的 still matches 它只是不会出于以下目的创建新组 1 1
  • JQGrid 列自动宽度

    我只是想知道如何将 jqGrid 列宽度设置为自动 colModel name MyDescription index description align left width 150 sortable false 对于上面的语句 我如何指
  • 如何对 Sharepoint 工作流程进行故障排除?

    我在这里有点迷失 找不到太多文档 NET 工作流程还是使用 SharePoint 设计器创建的工作流程 我只获得了后者的经验 而且它们并不容易调试 您实际上只需要一次执行一步并测试每一步 当您转到 列表设置 时 您也可以在 SharePoi
  • mysql字符串转换返回0

    why select aaa 0返回 1 真 如果我有一张像这样的桌子 userid pass user1 pas1 如果我查询 select from table where userid 0 and pass 0 它给了我所有的行 My
  • Scala变量作用域问题

    我有一个 scala 语法问题 假设我有一个简单的依赖模式构造 如下所示 trait Master val foobar object SubObject extends SubObject foobar foobar trait SubO
  • MySQL 设置自动增量“Ad Hoc”

    有没有办法以 临时 方式将 mysql 的 auto increment 设置为某个整数 例如 表中已删除 N 个最新行 因此主键 auto increment 与实际行数相差 N 有没有办法将 auto increment 设置为正确的数
  • 对于 ActiveReord 中的 has_many 关联,counter_cache 不会递减

    我的 Rails 3 应用程序有 2 个模型 第三个模型是它们之间的联接表及其 has many 关系 基本上 User 和 Show 通过 SavedShow 连接起来 允许用户保存节目列表 class Show lt ActiveRec
  • Java Builder 模式和“深”对象层次结构

    在 深层 对象层次结构中使用生成器模式的最佳实践是什么 为了详细说明 我探索了将 Joshua Bloch 提出的 Builder 模式应用到我的 XML 绑定代码的想法 我使用的是 SimpleXML 但这个问题适用于任何情况 我的对象层
  • 对于多个人脸,CIFaceFeature TrackingID 始终相同

    我想在我的项目中检测多张面孔 因此我打算使用 CIFaceFure 的trackingID属性来跟踪面部 但我发现每次每张脸的情况都是一样的 所以我的问题是 当视频帧中存在多张脸时 如何唯一地识别一张脸 我不想识别脸部以供以后仅检测当前视频
  • 如何在 iOS 8 中强制视图控制器方向?

    在 iOS 8 之前 我们结合使用以下代码支持的接口方向 and 应该自动旋转委托方法强制应用程序定向到任何特定方向 我使用下面的代码片段以编程方式将应用程序旋转到所需的方向 首先 我正在更改状态栏方向 然后 只需呈现并立即关闭模态视图即可