【问题标题】:setOrientation problem设置方向问题
【发布时间】:2010-12-16 05:17:17
【问题描述】:

我有一个非常奇怪的方向问题。我在导航控制器下有一系列视图控制器。其中之一可以采取任何方向。当我离开方向时,我必须使用 setOrientation。有趣的是,当转换发生到下一页时,就会发生旋转。这通常不是问题,除了单个案例——从 UIDeviceOrientationPortraitUpsideDown 到 normal 会导致我所有顶部安装的项目向上迁移大约八分之一的页面。

我认为我可以通过三种方法来解决它:

  1. 不知何故将 setOrientation 与我的 pushViewController 调用(所以新视图不需要翻转)
  2. 将我的项目设置为 以更好的方式固定在设备顶部 (我检查过,他们似乎是)
  3. 重置元素上的 Y 尺寸 ViewDidLoad 方法,但这似乎是错误的。

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

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait]; 

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

还有其他人觉得奇怪的是模拟器不允许您测试倒立到纵向的行为吗?

【问题讨论】:

    标签: iphone interface-builder uinavigationcontroller pushviewcontroller setorientation


    【解决方案1】:

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

    我们遇到了类似的问题,当翻阅颠倒的情况时,子视图会在主视图上下移动。我们只是停止支持倒置,这基本上解决了问题。

    【讨论】:

    • 好主意,不幸的是我需要所有 4 个方向(指南针方向不如只有 3 个 :))。
    【解决方案2】:

    请注意:Apple 开始使用静态(甚至可能是动态)分析器并阻止使用私有方法的应用(例如setOrientation:)进入商店。上周发生在我的一个朋友身上。

    您是否尝试过针对 iPhone OS 3.0 构建并仅依赖 shouldRotateToInterfaceOrientation:?行为似乎是固定的(与 2.x 中的实现相比)并且 - 至少对我而言 - 完成了这项工作。

    【讨论】:

    • shouldRotateToInterfaceOrientation 仅在发生旋转时调用。由于 navigationController 正在将一个新的视图控制器推送到堆栈上,因此它回避了该检查。看起来我需要向 Apple 提交一个错误。
    • 哦,你的意思是只在 NavigationController 中?抱歉,没有测试过;我有一个可以旋转到横向的 NavigationController,但是应该始终是纵向的模态视图。现在,当我拥有 iPhone 横向并且 NavigationController 显示横向时,我调用模态视图 - 它总是为 shouldRotateToInterfaceOrientation: 返回一个 NO - 它以纵向模式弹出。
    • 有趣。我想知道我是否可以弹出一个模式视图来修复方向,然后立即将其关闭...
    • 好的,我测试了弹出一个仅处理所需方向(纵向)的模态视图,然后我立即将其关闭。它直接回到我旋转之前的方向。
    【解决方案3】:

    从倒置旋转到纵向时避免旋转错误的方法是不要这样做。相反,旋转两次中途停止(比如UIDeviceOrientationLandscapeRight)。时间问题不是使用睡眠,而是实现didRotateFromInterfaceOrientation 并在此时触发第二次旋转(或推送到下一个视图)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-27
      • 2011-06-23
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      相关资源
      最近更新 更多