0

实现的解决方案在 IOS4 中运行良好,但现在在 IOS6 中它拒绝显示分配的视图(我只看到屏幕上的窗口)。

我有一个名为 MainController 的 ViewController。它有两个 UIView 类型的 IBOutlets。一种称为 PortraitView,一种称为 LandscapeView。

在 MainController viewWillAppear 中,我将视图指定为 PortraitView。

self.view = portraitView;

然后方向发生变化,我将视图分配为景观视图。

我的问题是,将它们分配给 viewControllers 视图后,似乎没有任何视图出现。如前所述,这在以前的 IOS 版本中运行良好。

我已经仔细检查了视图位置没有改变,并且 alpha 和 hidden 属性是正确的。出口也绑定到 xib 对象。

有人知道可能出了什么问题吗?添加我的 xib 文件不是围绕故事板构建的,而是围绕“旧” ibuilder 设置构建的。

4

3 回答 3

1

来自 UIViewController 文档:

shouldAutorotateToInterfaceOrientation:
Returns a Boolean value indicating whether the view controller supports the specified orientation. (Deprecated in iOS 6.0. Override the supportedInterfaceOrientations and preferredInterfaceOrientationForPresentation methods instead.)

如果您使用 shouldAutorotateToInterfaceOrientation 来了解旋转发生的时间,您可能需要阅读 iOS6 中自动旋转的工作方式。

于 2012-10-15T17:57:53.637 回答
0

我认为 viewWillAppear 在设置视图的过程中可能为时已晚。尝试在控制器的 init 方法或 viewDidLoad 中执行此操作,看看是否有效。

但是,您可能需要查看 Apple 文档中 View Controller Programming Guide 中的“Creating an Alternate Landscape Interface”部分,了解另一种方法。

于 2012-10-15T18:13:25.290 回答
0

我现在有点尴尬。原来我忘了@syntezise 我的观点。这导致视图自动释放并且没有显示在我的主控制器中。

我不知道为什么它在 IOS6 之前有效。

于 2012-10-20T11:30:20.483 回答