当我使用[[[UIApplication sharedApplication] keyWindow] addSubview:myView.view]
将加载视图添加为子视图时(因此它位于所有视图的顶部),即使我的应用已锁定到横向,视图的方向也会以纵向显示。当我直接添加为添加子视图时,这不会发生。
知道我为什么出错了吗?
答案 0 :(得分:0)
没有代码就很难分辨,但可能是因为当你直接向窗口添加子视图时,它不是你的根视图控制器视图的子视图,并且确实会获得方向通知。我要么避免直接将它添加到窗口的子视图中,要么如果必须,请注册方向通知,如下所示:
[[NSNotificationCenter defaultCenter] addObserver:myView
selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:nil];
然后将适当的方法添加到myView
视图控制器中以进行处理。
答案 1 :(得分:0)
在没有代码的情况下也猜测,但另一个理论是拥有视图的ViewController仅对肖像响应- (BOOL)shouldAutorotateToInterfaceOrientation:
的真值(我想很多xcode提供的模板vc代码执行此操作默认情况下)。
从提供的一点代码中,我们所讨论的ViewController可能叫做myView(如果我说得对,“myView”对于ViewController实例来说是一个糟糕的名字选择)。检查ViewController的shouldAutorotate实现...确保当待定位方向为横向时它回答“是”。