2

我有一个UIViewController(VC1),在UINavigationController中,通过在willRotateToInterfaceOrientation:方法中手动调整其视图/子视图帧来处理旋转。如果根UIViewController是活动视图控制器,基本在堆栈顶部,旋转工作正常。如何处理不在UINavigationController栈上的UIViewController的旋转?

当我将另一个UIViewController(VC2)推到NavigationController上时,会出现问题。然后我旋转VC2,它工作正常。然而,当我弹出VC2的问题是,VC1没有旋转到正确的方向,也没有它的willRotateToInterfaceOrientation:方法被调用? VC1中的shouldAutorotateToInterfaceOrientation:方法被调用,但那就是它。

我的问题是,我应该如何确保我的UIViewController VC1已更新为当前的方向为这种类型的情况?

回答

1

我解决这个问题的方法是检查viewWillAppear:以查看方向现在是否与调用viewDidDisappear时不同。如果是这样,我调用代码来布置视图。

要采用这种方法,第一个因素是负责将视图布置到_layoutViews之类的代码,可以简单地按照viewWillAppear以及willRotateToInterfaceOrientation:中的要求调用它。

相关问题