已实施的解决方案在IOS4中运行良好,但现在在IOS6中它拒绝显示指定的视图(我只在屏幕上看到窗口)。
我有一个名为MainController的ViewController。它有两个类型为UIView的IBOutlets。一个叫做portraitView,一个叫做landscapeView。
在MainController viewWillAppear中,我将视图指定为portraitView。
self.view = portraitView;
然后方向改变我将视图指定为landscapeView。
我的问题是,在将它们分配给viewControllers视图后,没有任何视图似乎是applear。如上所述,这在以前版本的IOS中运行良好。
我已经仔细检查了某些视图可能没有改变,并且alpha和hidden属性是正确的。出口也绑定到xib对象。
有人知道可能出现什么问题吗?添加我的xib文件不是围绕故事板构建的,而是“旧的”ibuilder设置。
答案 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之前有效。