我在我的应用中使用了NavigationController
,从那里,我提出了一个像viewController
一样的弹出窗口。因此,如果我旋转设备,我可以旋转topView(呈现viewController
)但无法旋转位于导航控制器顶部的父视图控制器。
我需要指导为什么会发生这种情况以及如何解决这个问题。
答案 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];
}