题
我有一个非常奇怪的方向问题。我在导航控制器下有一系列视图控制器。其中一个可以采取任何方向。当我离开方向时,我必须使用setorientation。有趣的是,随着过渡到下一页的过渡,旋转发生。除了单个情况外,这通常不是一个问题 - 从uideviceorientationportraitupsidessown到正常情况,这会导致我所有顶级的项目迁移到页面的八分之一。
我认为我可以解决三种方法:
- 不知何故,将设置方向与我的pushViewController调用分开(因此新视图不需要翻转)
- 将我的物品设置为以更好的方式锚定在设备的顶部(我检查了,它们似乎是)
- 重置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应用程序行为,并且很有意义。颠倒的情况并不是真正有用的,可能会给用户造成混乱。
我们也有一个类似的问题,当翻转颠倒的情况下,子视图将在主视图上下迁移。我们只是停止支持颠倒,这基本上解决了问题。
不隶属于 StackOverflow