我有一个支持设备方向的屏幕。
除了当我把设备颠倒(Home键在顶部)时旋转不起作用(它卡在最后一次横向设置上),其他都正常工作。
我知道需要更新几个地方来支持这个:
- 在VC本身中,我添加了以下方法:
- 在项目目标中,我更新如下:
- 在Storyboard VC场景中,我更新如下:
这里我漏掉了什么吗?
我有一个支持设备方向的屏幕。
除了当我把设备颠倒(Home键在顶部)时旋转不起作用(它卡在最后一次横向设置上),其他都正常工作。
我知道需要更新几个地方来支持这个:
这里我漏掉了什么吗?
你还需要在当前主视图控制器的每个父视图控制器中允许旋转到所有方向。比如,如果你的视图控制器在导航控制器中,可以尝试子类化并覆盖与示例中相同的方法。
编辑:正如@JordanC提到的那样,自iOS 7起,你可以实现UINavigationControllerDelegate
方法来返回自定义支持的方向:
- (UIInterfaceOrientationMask)navigationControllerSupportedInterfaceOrientations:(UINavigationController *)navigationController
supportedInterfaceOrientations
方法,以返回其 topViewController
支持的方向。但是,这并不能防止在非法方向下弹出到第一个视图控制器。我唯一看到的解决方案是,在前一个 VC 不支持当前方向时禁用“返回”按钮。 - Tricertops- (UIInterfaceOrientationMask)navigationControllerSupportedInterfaceOrientations:(UINavigationController *)navigationController
方法。 - JordanCUITabBarController
进行子类化(并覆盖 supportedInterfaceOrientations
),如果这是您的初始视图控制器,则在这种情况下,这是您应该子类化的唯一控制器(当然,您应该将所有支持的界面方向添加到您的应用程序 Info.plist 文件的 UISupportedInterfaceOrientations
键中)。- (NSUInteger)supportedInterfaceOrientations {
return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown);
}
UIInterfaceOrientationMaskAll
表示也包括这些。 - rckoenes