假设我在导航控制器层次结构中有三个视图控制器。
这就是我为所有三个视图控制器处理shouldAutorotateToInterfaceOrientation:
消息的方式:
vc1:
{ return (interfaceOrientation == UIInterfaceOrientationPortrait);}
vc2:
{ return (interfaceOrientation == UIInterfaceOrientationPortrait
|| interfaceOrientation == UIInterfaceOrientationLandscapeLeft
|| interfaceOrientation == UIInterfaceOrientationLandscapeRight);}
vc3:
{ return (interfaceOrientation == UIInterfaceOrientationPortrait);}
因此,我的初始视图控制器 vc1 以纵向模式显示。如果旋转设备,则没有任何反应,这是正确的。然后我将 vc2 推入堆栈,它最初以纵向显示。我旋转设备, vc2 进入横向模式,这是正确的。在 vc2 的横向模式下,我将 vc2 从堆栈中弹出并返回 vc1 ,然后 vc1 以纵向模式显示 - 这也是正确的。
所以现在问题就出现了。
vc1 以纵向显示,弹出 vc2 ,然后旋转以查看横向视图。然后,以横向模式弹出 vc3 , vc3 ,即使它只支持肖像。
我不知道为什么会这样,或者如何打击它。换句话说,每当回到vc1时,它只会以纵向自动显示,但vc3会自动显示前一个vc使用的任何方向。但你可以看到我对vc1和vc3使用相同的代码,所以对我来说没有意义。
非常感谢任何帮助!
答案 0 :(得分:0)
您如何确定设备方向?
UIDeviceOrientation指的是err设备的方向,应该与UIDeviceOrientation ...常量进行比较。
UIInterfaceOrientation指的是界面的方向。它是通过读取statusBar的方向来确定的,并且应该与UIInterfaceOrientation进行比较。