我有一个非常奇怪的方向问题。我在导航控制器下有一系列视图控制器。其中一个可以采取任何方向。当我离开方向时,我必须使用setorientation。有趣的是,随着过渡到下一页的过渡,旋转发生。除了单个情况外,这通常不是一个问题 - 从uideviceorientationportraitupsidessown到正常情况,这会导致我所有顶级的项目迁移到页面的八分之一。

我认为我可以解决三种方法:

  1. 不知何故,将设置方向与我的pushViewController调用分开(因此新视图不需要翻转)
  2. 将我的物品设置为以更好的方式锚定在设备的顶部(我检查了,它们似乎是)
  3. 重置ViewDidload方法上元素上的y维度,但这似乎是错误的。

这是我将新视图推向堆栈代码:

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; 

ResultSelect_ViewController *resultSelect = [[ResultSelect_ViewController alloc] initWithNibName:@"ResultSelect" bundle:nil];
[self.navigationController pushViewController:resultSelect animated:YES];

有人觉得模拟器不允许您测试颠倒的肖像行为是奇怪的吗?

有帮助吗?

解决方案 3

避免从颠倒旋转到肖像时旋转错误的方法不是这样做。相反,旋转两次停止中途(说 UIDeviceOrientationLandscapeRight)。时机的问题是不使用睡眠,而是实施 didRotateFromInterfaceOrientation 并在此时发射第二个旋转(或推到下一个视图)。

其他提示

只是要注意:苹果开始使用静态(甚至是动态)分析仪和 封锁使用私人方法的应用程序 (例如 setOrientation:)进入商店。上周发生了我的一个朋友。

您是否尝试过针对iPhone OS 3.0并仅依靠 shouldRotateToInterfaceOrientation:?这种行为似乎是固定的(与2.x中的实现相比),至少对我而言,这项行为可以做到这一点。

通常,您不会支持颠倒的方向。这似乎是标准的Apple应用程序行为,并且很有意义。颠倒的情况并不是真正有用的,可能会给用户造成混乱。

我们也有一个类似的问题,当翻转颠倒的情况下,子视图将在主视图上下迁移。我们只是停止支持颠倒,这基本上解决了问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top