我有一个应用程序,我想在某些视图中支持设备旋转,但在横向模式下,其他视图没有特别的意义,所以当我交换视图时,我想强制将旋转设置为纵向.

UIDevice上有一个未记录的属性设置程序,它可以实现这一功能,但显然会生成编译器警告,并且可能会随着SDK的future 修订而消失.

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

有没有记录在案的方法来强制定向?

Update:我想我会提供一个例子,因为我不是在寻找shouldAutorotateToInterfaceOrientation,因为我已经实现了这一点.

我希望我的应用程序在视图1中支持横向和纵向,但在视图2中仅支持纵向.我已经为所有视图实现了shouldAutorotateToInterfaceOrientation,但如果用户在视图1中处于横向模式,然后切换到视图2,我想强制手机旋转回纵向.

推荐答案

在后来的iPhone 3.1.2 SDK中,这不再是一个问题.现在,它似乎符合被推回堆栈的视图的要求方向.这可能意味着您需要检测较旧的iPhone OS版本,并且只在最新版本之前应用setOrientation.

目前尚不清楚苹果的静态分析是否会理解您正在解决旧的SDK限制.我个人已经被苹果告知,在我下一次更新时删除方法调用,所以我还不确定对旧设备进行黑客攻击是否会通过审批流程.

Objective-c相关问答推荐

Clang:将 id 之类的类型转换警告提升为 class

当我们只能使用 NSObject 时,为什么还要使用 id?

使用自动布局自定义纵横比

iphone - 防止uiscrollview通过滚动

如何检测 iPhone 5c 的 colored颜色 ?

如何删除警告按钮的框架在运行时会有所不同.

将 Objective-C 指针类型NSString *转换为 C 指针类型CFStringRef(又名const struct __CFString *)需要桥接转换

自动属性合成 (@property) 和继承

测试应用程序是否确实从 UILocalNotification 变为活动状态

NSView 的边界与框架

何时使用静态字符串与 #define

更改 UIBarButtonItem 的 Tint colored颜色

将 NSData 字节转换为 NSString?

主队列上的 dispatch_sync 与 dispatch_async

从 UIImage 获取 Exif 数据 - UIImagePickerController

如何从输入 IB 的 UILabel 文本中插入新行 \n?

UIScrollView - 显示滚动条

如何本地化 iOS 故事板

如何创建 .dSYM 文件?

Xcode中私有方法的单元测试