0

可能重复:
添加到 UIWindow 的 UIView 中的方向

当我使用[[[UIApplication sharedApplication] keyWindow] addSubview:myView.view](以便它位于所有视图的顶部)将加载视图添加为子视图时,即使我的应用程序被锁定为横向,视图的方向也会以纵向显示。当我直接添加为添加子视图时,这不会发生。

知道为什么我要去哪里错了吗?

4

2 回答 2

0

没有代码很难说,但这可能是因为当您将子视图直接添加到窗口时,它不是根视图控制器视图的子视图,并且确实会收到方向通知。我要么避免直接将其添加到窗口的子视图中,要么如果必须,注册方向通知,如下所示:

[[NSNotificationCenter defaultCenter] addObserver:myView
                                         selector:@selector(orientationChanged:)
                                             name:UIDeviceOrientationDidChangeNotification
                                            object:nil];  

然后将适当的方法添加到您的myView视图控制器来处理它。

于 2012-09-09T21:58:25.543 回答
0

在没有代码的情况下也猜测,但另一个理论是拥有视图的 ViewController- (BOOL)shouldAutorotateToInterfaceOrientation:只对纵向响应以真值(我认为 xcode 提供的模板 vc 代码的大部分默认情况下都会这样做)。

从所提供的少量代码来看,也许我们正在谈论的 ViewController 被称为 myView(如果我是对的,“myView”对于 ViewController 的实例来说是一个糟糕的名称选择)。检查 ViewController 的 shouldAutorotate 实现...确保当未来方向是横向时它回答 YES。

于 2012-09-09T22:54:41.997 回答