【问题标题】:UIViewController blank in portrait mode, but subviews are visible in landscape mode?UIViewController 在纵向模式下为空白,但在横向模式下子视图可见?
【发布时间】:2015-10-19 13:07:36
【问题描述】:

发生了一件很奇怪的事情。我在 IB 中创建了一个 UIViewController 并使用了

detailController = self.storyboard?.instantiateViewControllerWithIdentifier("detailView")
self.navigationController?.pushViewController(detailController!, animated: true)

显示视图。但奇怪的是,它在竖屏模式下呈现一个空白屏幕,在横屏模式下呈现一个正确的视图,如截图所示

我试过了

self.presentViewController(traceInfoController!, animated: true, completion: nil)

它也没有帮助。

我的代码库比较大,我已经注释掉了所有方向适应的代码。

任何想法如何发生这种情况以及如何纠正它?

【问题讨论】:

  • 你使用过尺码等级吗?
  • 您是否应用了适当的约束?
  • 如果你确实使用了尺寸等级:会不会是一个约束在纵向模式下破坏了你的布局,导致一个空白视图?您可以尝试使用 xcode 界面调试器来查看是否可以解决您的问题(也许您的东西在那里,但是在可见屏幕之外,等等)。另外,也许一个接一个地停用一个约束,在每个步骤之间进行测试了解可能导致您的问题的原因。

标签: ios swift uiviewcontroller uiinterfaceorientation


【解决方案1】:

谢谢大家!我刚刚想通了!

我不记得我在 IB 中将布局模式更改为 (wAny hCompact) 是什么时候!

看最后一行的小文字,说iPhone是横向的!所以这就是为不同屏幕尺寸设计不同布局的方法!

要解决问题,只需更改为 (wAny hAny) 然后编辑即可。

【讨论】:

    【解决方案2】:

    首先,检查您的 XIB 是否启用了 Auto-layout 和 Size 类,如下图所示:

    如果您启用了Auto-layoutSize classes,那么您可能需要限制您的视图。

    做一件事,对你的一个视图应用一些约束并检查它。确保正确定义了约束。

    如有任何疑问,请添加 cmets..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-10
      • 1970-01-01
      • 2014-03-26
      • 2011-09-05
      相关资源
      最近更新 更多