旋转父视图控制器,如果从NavigationController呈现viewController

时间:2014-06-24 04:56:46

标签: ios

我在我的应用中使用了NavigationController,从那里,我提出了一个像viewController一样的弹出窗口。因此,如果我旋转设备,我可以旋转topView(呈现viewController)但无法旋转位于导航控制器顶部的父视图控制器。

我需要指导为什么会发生这种情况以及如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

如果父视图控制器(呈现视图控制器)不是可见视图控制器,则永远不会在父视图控制器(呈现视图控制器)中调用旋转方法(- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation)。因此,您应该根据状态栏方向显式旋转视图控制器。但是,当您关闭显示的视图控制器时,将在父视图控制器中调用 viewWillLayoutSubviews 方法。做那里的东西......

在您的父视图控制器中:

- (void)viewWillLayoutSubviews 
{
    //Check your your view controller is visible. If not visible then call
    [self willRotateToInterfaceOrientation:[[UIApplication sharedApplication] statusBarOrientation] duration:0];
}