在覆盖当前设备方向后,还有什么可以识别设备的物理方向?

时间:2018-01-18 11:48:49

标签: ios objective-c uitabbarcontroller uideviceorientation

在基于标签的应用程序中,假设设备在物理上处于横向方向并固定在该方向上。一个选项卡应仅以纵向显示,以便在用户切换选项卡时强制执行此方向

[[UIDevice currentDevice] setValue:@(UIInterfaceOrientationPortrait) forKey:@"orientation"];

在此之后,有没有办法让我们仍然可以发现该设备是物理景观的,所以当用户返回横向支持的视图时,我们可以更新" orientation"具有正确的景观价值?因为UIDevice-> currentDevice-> Orientation自我们更新后开始报告为Portrait。我无法找到任何其他可以说明设备在物理上处于横向的事实。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

我猜你仍然可以使用陀螺仪进行旋转。

但你不应该这样做。你需要使用每个视图控制器的限制(我假设你尝试过但没有工作)。每个视图控制器方向锁定后,确保在嵌入式视图控制器上正确转发消息。

这意味着应该覆盖每个UINavigationViewController并返回其顶视图控制器的设置。这也意味着每个UITabBarController应使用其当前显示的视图控制器执行相同操作。在实际情况下,您可能有一个导航控制器,其中包含一个标签栏视图控制器,显示另一个导航控即使在这种情况下,您也必须确保最底层的导航控制器将从最顶层的可见视图控制器接收设置。