强制方向为纵向模式

2023-12-12

我的所有应用程序都处于纵向模式,但我有一个横向模式的视图控制器作为图像库。

在“项目摘要”选项卡上启用 LandscapeLeft 模式,因此我必须在视图控制器的其余部分中以这种方式禁用旋转,但图像库的 VC 中除外。

我想保持旋转为纵向模式,为此并阻止所有 VC 纵向,我使用了以下代码

-(BOOL)shouldAutorotate{
return YES;
}

-(NSInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
}
return UIInterfaceOrientationPortrait;
}

这让我在之前的 VC 中保持横向模式,而它应该旋转为纵向。

有什么想法吗?


对于人像模式 VC,

#pragma mark iOS 5 Orientation Support

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

     return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}

#pragma mark iOS 6 Orientation Support

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

对于横向模式 VC,

#pragma mark - iOS 5.0 and up Rotation Methods

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    return UIInterfaceOrientationMaskLandscape;

}

#pragma mark - iOS 6.0 and up Rotation Methods

- (NSUInteger)supportedInterfaceOrientations;
{
    return UIInterfaceOrientationMaskLandscape;
}

如果您使用的是navigationController,

创建一个这样的类别,

    @interface UINavigationController (Rotation_IOS6)

    @end

    @implementation UINavigationController (Rotation_IOS6)

    -(BOOL)shouldAutorotate
    {
        if([self.visibleViewController isMemberOfClass:NSClassFromString(@"YourLandscapeViewController")])
        {
            return UIInterfaceOrientationMaskLandscape
        }
        return NO;
    }

    - (NSUInteger)supportedInterfaceOrientations
    {
        return [[self topViewController] supportedInterfaceOrientations];
    }

    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
    {
        if([self.visibleViewController isMemberOfClass:NSClassFromString(@"YourLandscapeViewController")])
        {
            return UIInterfaceOrientationMaskLandscape
        }
        return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
    }

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

强制方向为纵向模式 的相关文章

随机推荐

  • Javascript对象按日、月、年分组

    我正在开发一个应用程序 我需要对不同的 JavaScript 对象集进行分组 这些对象将基于月 日和年 这一天我的做法如下 var calculateByDay function inputList var outPutList var r
  • 将范围添加到 ActiveRecord 会导致层次结构错误

    我刚刚转换了所有 Rails 模型以供使用uuid作为主键替换 但这打破了 first and last方法 所以我尝试添加一个按以下方式排序的默认范围created at代替id 我的担忧是这样的 config initializers
  • 找出当前用户的用户名 - 当多个用户登录时

    用户A 已登录 我的应用程序将Environment Username识别为 User A 现在在 Windows 中 我单击 切换用户 用户B 登录 用户 A 的进程仍在运行 用户 A 运行的应用程序仍然显示环境 用户名是 用户 A 我希
  • 如何在 C# 中计算 OneDrive XOrHash

    我们希望以与 OneDrive 相同的方式计算 XOrHash 以便我们可以检测与 OD4B 后端同步所需的任何更改 我有当前使用的 XOrHash 算法的实现 可以在这里找到https learn microsoft com en us
  • 如何使用 Zapier 代码发布推文

    以下内容在 Code by Zapier 操作中不起作用 fetch https api twitter com 1 1 statuses update json status encodeURIComponent textToTweet
  • Java内存转储问题

    我尝试使用下面的代码创建内存转储 usr lib jvm j2sdk1 5 sun bin jmap heap 10699 但我遇到了下面提到的错误 任何人都可以帮助我 正在附加进程 ID 10699 请稍候 附加到进程时出错 sun jv
  • 不带参数的 git filter-branch 有什么作用?

    什么是git filter branch没有争论吗 我在我的仓库上运行了这个 不小心过早地按了回车键 没有什么 它似乎计算了哈希值并没有发现任何变化
  • ActionScript 2 缺乏 Flash ActionScript 3 功能

    自从 Adob e 随 Flash Player 9 引入 ActionScript 3 以来 我们中的许多人转换得很慢 简而言之 我想知道 AS3 作为一个框架可以做什么 这在 AS2 中是根本不可能或非常困难的 我不是在谈论现成的组件
  • 如何从 java servlet 中的 POST 数据中分离出查询字符串参数

    当您在 servlet 中收到 doGet 或 doPost 调用时 您可以使用getparameterxxx 在一个简单的地方获取查询字符串或发布数据 如果调用是 GET 您可以从 url 查询字符串获取数据 如果调用是 POST 您将获
  • CPU 如何从 RAM 访问应用程序和数据

    在应用程序加载到 RAM 并打开文件后 因此文件的数据也存储在 RAM 中 我在理解 CPU 如何从 RAM 访问应用程序和数据时遇到了一些困难 根据我的理解 CPU 只是在程序计数器滴答时从 RAM 获取指令或在中断后执行任务 那么它如何
  • 在 protobuf 消息中存储单个字节

    我使用什么数据类型在协议缓冲区消息中存储单个字节 查看列表位于https developers google com protocol buffers docs proto scalar似乎 int32 类型之一是最合适的 有没有更有效的方
  • 使用比较运算符比较 time_t 值

    我有2个time t值 我想找出哪一个更大 time t是内部的 int64在我的平台上 我可以用吗 lt gt and 运算符来比较值 我不想知道两个时间值之间的差异 代码只会在 Windows 上运行 所以我不关心可移植性 以这种方式比
  • 如何使用Python脚本控制LabView VI前面板开关(开/关、条调节器)?

    我有一个LabView前面板控制硬件的开关和传感器电压调节器 需要使用 Python 脚本来控制它们 我对此了解不多LabView 请解释如何做到这一点 我在 LabVIEW 讨论板上找到了一份参考资料 该参考资料成功地this 它使用以下
  • 如何在 C++ 中将窗口的屏幕截图作为位图对象获取?

    如何在 C 中将窗口的屏幕截图作为位图对象获取 假设我已经有了窗口句柄 我还想知道是否可以在最小化状态下获取窗口的屏幕截图 这里的 C 是指 VC 以及与 Windows XP win32 相关的所有库 你应该调用 PrintWindow
  • RubyMine 代码自动完成

    我即将习惯在 Android Studio 中使用 Java 最棒的是一切都被强烈声明 因此 当我输入 MyClass someme 时 IDE 会为我提供高级代码自动完成功能 发展是迅速而令人愉快的 但后来我想学习 RubyOnRails
  • 如何在 Bash 中读取文件或标准输入

    以下 Perl 脚本 my pl 可以从命令行参数中的文件或从标准输入 标准输入 while lt gt print perl my pl将从标准输入读取 而perl my pl a txt将从中读取a txt 这非常方便 Bash 中有类
  • 如何将 2 个 Excel 文件合并为一个具有不同工作表的 Excel 文件?

    我有 2 个 Excel 文件 我想将它们合并为 1 个具有单独工作表的文件 我尝试与 Microsoft Office Interop Excel 进行合并 但我不明白如何使用它 对于叶海亚 这里是获取范围的方法 我想将它们与不同的文件合
  • 如何为 cout 编写一个允许表达语法的函数包装器?

    我想包起来std cout用于格式化 如下所示 mycout what type x optional args do some formatting on x first std cout lt lt x 并且仍然能够使用表达语法 例如
  • 样式和主题的背景问题

    在 attrs 我有
  • 强制方向为纵向模式

    我的所有应用程序都处于纵向模式 但我有一个横向模式的视图控制器作为图像库 在 项目摘要 选项卡上启用 LandscapeLeft 模式 因此我必须在视图控制器的其余部分中以这种方式禁用旋转 但图像库的 VC 中除外 我想保持旋转为纵向模式