【问题标题】:Forcing LandScape orientation without using [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationAnyOrientation]不使用 [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationAnyOrientation] 强制 LandScape 方向
【发布时间】:2012-02-16 16:49:44
【问题描述】:

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

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

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

我也尝试过处理键盘布局以正确显示它,但没有任何效果。

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

【问题讨论】:

    标签: ios xcode orientation appstore-approval


    【解决方案1】:

    将此代码放入 viewWillAppear

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

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

    【讨论】:

    • 伙计,你真是个天才。我一直在寻找这段代码将近两天了。解决方案非常简单。 :) 正是我需要的。谢谢你。 :)
    • 我一直在寻找这个解决方案。我不相信这是可能的,但是... =)
    • 我希望我能以某种方式推广这个答案,因为 Stack 对这个答案充满了错误/冗长的答案。太棒了!
    • 这个解决方案太棒了!你能解释一下它是如何工作的吗?非常感谢!!
    • 这看起来确实很神奇,但如果您能解释一下下面发生的事情,我将不胜感激。我在尝试将方向恢复到使用此技术后的状态时遇到问题。有什么帮助吗?
    猜你喜欢
    • 2011-01-28
    • 2023-03-10
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 2010-10-30
    相关资源
    最近更新 更多