viewWillLayoutSubviews和旋转

在我的应用程序中,我将所有的视图放在viewWillLayoutSubviews中。 最近我被要求让应用程序处理所有的方向。 我觉得这很简单,因为我正在使用

CGRect rotatedFrame = [self.view convertRect:self.view.frame fromView:nil];

这将返回与设备当前方向匹配的框架。 不幸的是,我发现这不适用于所有情况。 即如果我提出一个模式的视图控制器,将其旋转到横向,然后解雇它,父视图控制器“rotateFrame”是不是我所期望的。 这导致我的视​​图布局不正确。

有没有办法获得正确的方向框架?

我发现,而不是把nilfromView:我使用视图的父母,它按预期工作。

CGRect rotatedFrame = [self.view convertRect:self.view.frame fromView:self.view.superview];