模态视图控制器不能正确旋转

在ipad上,在ios目标C中,我在一个模态视图中遇到了旋转移动的问题。 我在shouldAutoRotate方法中给出元素的位置,并且它的父视图也可以旋转,但是当我旋转模态视图时,元素不会放在正确的位置。

欲了解更多信息,如果我以纵向模式打开视图,我得到这些数据:

 <UIView: 0x72bc160; frame = (0 0; 768 1004); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x13f324f0> 

在横向模式下:

 <UIView: 0x1358f3b0; frame = (0 0; 768 748); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x1358f3e0>> 

但如果我旋转视图的水平框架改变垂直框架…

难道我做错了什么?

我在视图控制器旋转方面有很多乐趣。 有两件事要记住:

  1. 假设你覆盖了整个屏幕(并且没有做任何特定的子视图转换),确保你从最广泛的视图控制器(通常是应用程序的根视图控制器)呈现模式视图控制器。
  2. 确保每个包含视图控制器的概念都将旋转事件传递给其概念子视图控制器。 (在iOS 5之前,这是非常不明确的)

当这些事情发生在我身上时,是因为后台的视图控制器得到了旋转事件,但是我所呈现的特定视图控制器忽略了它们,并没有将它们传递给模态视图控制器,从而导致不一致。