当您有不同的方向屏幕时,iOS自动旋转不起作用

问题描述 投票:1回答:1

我正在开发一个用Objective-C编写的App。我有更多屏幕,所有屏幕都是横向左侧和横向右侧方向,这些屏幕不能处于纵向模式。但我有3个不同的屏幕应该只在纵向模式下不能在横向左侧或右侧。

这是所有屏幕的横向模式代码 -

这适用于我的应用程序的纵向模式

这些都是我在View Controllers和In app Plist中所做的,我添加了所需的方向,例如This Info.plist

并且应用设备方向将自动更改。像这样 - 。

我很确定一切都很清楚并且应该按预期工作但由于某些原因当我使用应用程序并锁定自动旋转并运行应用程序时,它会自动在纵向模式下打开,当我解锁自动旋转时它将在横向然后旋转它将旋转到纵向模式。我使用了shouldAutorate返回YES,因为它应该在Landscape Left和Landscape Right之间自动旋转,所以我也使用它,肖像模式屏幕在Portrait中打开但是当用户旋转设备时它会自动旋转。

任何帮助将不胜感激,请分享任何想法为什么我的应用程序没有按预期工作。

ios objective-c device uiinterfaceorientation shouldautorotate
1个回答
0
投票

以下是解决此问题的步骤:

  1. 从plist中删除方向,因为它会覆盖视图控制器中的任何逻辑。
  2. 将代码保留在具有横向方向的代码下方: -(BOOL)shouldAutorotate { return YES; } -(NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight; }
  3. 对于纵向模式,请使用如下: -(BOOL)shouldAutorotate { return YES; } -(NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; }

现在尝试锁定第一个视图控制器将在横向上显示的方向,而其他一个将是纵向,无论方向锁定。

© www.soinside.com 2019 - 2024. All rights reserved.