在UIviewController中切换两个视图

时间:2012-10-15 17:39:09

标签: ios uiview uiviewcontroller ios6

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

我有一个名为MainController的ViewController。它有两个类型为UIView的IBOutlets。一个叫做portraitView,一个叫做landscapeView。

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

self.view = portraitView;

然后方向改变我将视图指定为landscapeView。

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

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

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

3 个答案:

答案 0 :(得分: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中的工作方式。

答案 1 :(得分:0)

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

但是,您可能需要查看Apple文档中“View Controller编程指南”中的“创建备用横向界面”部分,以获取其他方法。

答案 2 :(得分:0)

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

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