Iiview Deck控制器更改帧,而无需更改模态视图上的接口方向



我正在使用 IIViewDeckController并面对一个非常奇怪的问题,如下所示吗?:

我的ViewController(是IIViewDeckController)处于景观模式,然后在其顶部将一个新的视图控制器呈现。现在,模态视图控制器不支持景观模式,因此仅在肖像模式下显示。
到目前为止,一切都很好。

但是,一旦我试图解散这个模态呈现的控制器, IIViewDeckController's视图的框架就变成(320,568)(我认为此IIViewDeckController已旋转到肖像模式,但我不确定这一点)。因此,我检查了显示" 4"(即UIInterfaceOrientationLandscapeLeft)的self.interfaceOrientation,这应该是实际情况。

,但是这两件事使我感到困惑,因为框架指示了肖像模式,并且属性显示了不同的东西。现在,由于此帧在没有更改interfaceOrientation的情况下更改,因此在视图中对对象的帧进行了错误的计算。

我遇到了同样的问题,我通过在AppDelegate类中对IIViewDeckController进行分类来解决它。

以下是需要分类的一种方法: -

@interface IIViewDeckController (categoryForOrientation)
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation;
@end
@implementation IIViewDeckController (categoryForOrientation)
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
    return [self interfaceOrientation];
}

最新更新