IOS设置方向不起作用

Posted

技术标签:

【中文标题】IOS设置方向不起作用【英文标题】:IOS setting orientation not working 【发布时间】:2012-10-31 18:47:33 【问题描述】:

正如标题所述,我的应用 atm 的方向存在很大问题。似乎我根本无法控制不同幻灯片中的方向。我在我的应用程序中尝试过以下方法并且有效/无效:

Xcode 拒绝在任何幻灯片上监听 shouldAutorotateToInterfaceOrientation 方法中给出的任何代码。

Xcode 拒绝收听每张幻灯片的故事板中给出的任何设置。

Xcode 监听 info-plist 文件,但您只能从该文件中设置应用程序中所有视图/幻灯片的方向。我希望一些幻灯片允许横向模式,而其他幻灯片只允许纵向模式。

我试图删除我的应用程序中的所有 UINavigationBars/Tabbars,实际上只使用 1 个单个 ViewController 作为初始 ViewController,问题仍然存在,只能从 info-plist 文件管理方向。基本上,该应用程序会重新听除调整方向设置的 info-plist 文件以外的任何内容?

我已尽最大努力理解这个问题,但我不能说我已经获得了更大的“啊哈时刻”,因为苹果提供的所有调整设置的可能方式至少在我的应用程序中根本不起作用,伟大的苹果! ...我们是否有其他人以前经历过或听说过这个问题?

【问题讨论】:

【参考方案1】:

- (BOOL)shouldAutorotateToInterfaceOrientation:ios 6 中已弃用。

您应该覆盖 UIViewController 子类的 - (NSUInteger)supportedInterfaceOrientations 方法。

例子:

- (NSUInteger)supportedInterfaceOrientations

    return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft;

编辑:

如果您使用的是 UINavigationController,那么您也必须对其进行子类化,并实现上述逻辑。这是预期的功能。相关 *** 问答:

iOS 6 bug: supportedInterfaceOrientations not called when nav controller used as window root

iOS 6 rotations: supportedInterfaceOrientations doesn´t work?

Set different supportedInterfaceOrientations for different UIViewControllers

【讨论】:

- (NSUInteger)supportedInterfaceOrientations return UIInterfaceOrientationMaskPortrait;没用,即使使用此代码,仍然可以横向使用.... 你在使用 UINavigationController 吗? 也只有根视图控制器或全屏显示的视图控制器会收到这些消息。 是的,我正在使用 UINavigationController 查看编辑和相关的 SO 帖子。如果您使用的是 UINavigationController,则必须对其进行子类化并实现上述方法。

以上是关于IOS设置方向不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Storyboard iOS 5.1 时横向方向不起作用

设备方向倒置不起作用

为啥 iPad 默认启动图像方向不起作用(iOS 5)?

水平滚动方向的iOS7 UICollectionView不起作用

iOS 方向更改也不起作用 UIDeviceOrientationDidChangeNotification 未收到

Xamarin.iOS 信息,plist 不起作用