不使用[[UIDevice currentDevice] setOrientation强制LandScape方向:UIInterfaceOrientationAnyOrientation]

时间:2012-02-16 16:49:45

标签: ios xcode orientation appstore-approval

我有一个奇怪的问题,我无法弄清楚如何解决它! 我的应用程序支持任何类型的方向(纵向,横向等),但我设计的新部分(视图)仅在横向中有用。 因此,当我按下按钮或在创建此特定视图时旋转设备方向时,我必须强制将新视图加载到横向中。

使用解决所有问题,但我在网上看到,使用此API会导致您的应用被Apple拒绝。 它仍然可以使用吗?

有很多视图我使用UIViewController作为“容器”,所以我可以更好地处理它们。如果使用这个可能本身就是一个问题,我更聪明...... 我尝试使用CGTransform旋转视图并使用视图容器内的BOOL“锁定”旋转,这解决了布局问题,因此视图正确显示但是当textView变为第一响应时,键盘以纵向模式显示。 这就是设备方向仍然是纵向的原因。

我还尝试使用键盘布局来正确显示它,但没有任何效果。

感谢您为我提供的任何帮助!

1 个答案:

答案 0 :(得分:16)

将此代码放在viewWillAppear

UIViewController *viewController = [[UIViewController alloc] init];
[viewController setModalPresentationStyle:UIModalPresentationCurrentContext];
viewController.view.frame = CGRectZero;
[self presentModalViewController:viewController animated:NO];
[self dismissModalViewControllerAnimated:NO];
[viewController release];

这会将新视图控制器旋转到设备方向