Iphone 添加子视图会更改方向
可能重复:Iphone 添加子视图会更改方向,iphone,ios,uiview,Iphone,Ios,Uiview,可能重复: 当我使用[[[UIApplication sharedApplication]keyWindow]addSubview:myView.view]将加载视图添加为子视图时(因此它位于所有视图的顶部),视图的方向以纵向显示,即使我的应用程序锁定为横向。当我直接添加为“添加子视图”时,这不会发生 知道我哪里出错了吗?没有代码很难说,但可能是因为当您直接向窗口添加子视图时,它不是根视图控制器视图的子视图,并且会收到方向通知。我会避免直接将其添加到窗口的子视图中,或者如果必须,注册方向通知,
当我使用
[[[UIApplication sharedApplication]keyWindow]addSubview:myView.view]
将加载视图添加为子视图时(因此它位于所有视图的顶部),视图的方向以纵向显示,即使我的应用程序锁定为横向。当我直接添加为“添加子视图”时,这不会发生
知道我哪里出错了吗?没有代码很难说,但可能是因为当您直接向窗口添加子视图时,它不是根视图控制器视图的子视图,并且会收到方向通知。我会避免直接将其添加到窗口的子视图中,或者如果必须,注册方向通知,如下所示:
[[NSNotificationCenter defaultCenter] addObserver:myView
selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:nil];
然后将适当的方法添加到您的
myView
视图控制器来处理它。也可以在没有代码的情况下进行猜测,但另一种理论是,拥有视图的ViewController应响应-(BOOL)AutoRotateTointerFaceOrientation:
仅为纵向设置一个真值(我认为很多xcode提供的模板vc代码默认都是这样做的)
从提供的代码来看,我们谈论的ViewController可能称为myView(如果我说的没错,“myView”对于ViewController实例来说是一个糟糕的名称选择)。检查ViewController的shouldAutorotate实现…确保当待定向为横向时,它回答“是”。相关问题:这是一个奇怪的构造,将视图添加为
keyWindow
的子视图,并且绑定到不接收通知事件。为什么不将其添加为视图控制器视图的子视图(在这种情况下,视图控制器将获得所有适当的旋转通知事件)。您可以围绕您的构造工作,但为什么要这样做?我的应用程序已固定为横向模式,那么这又有什么关系?即使设备未旋转,此问题仍然存在。