我有 3 个视图的层次结构
我为我的 NavigationViewController 创建了一个子类,并设置了一个属性Landscape
来确定每个 viewController 是否可以支持不同的方向。
此属性在ViewWillAppear
每个视图控制器中设置:这非常有效。控制器 1 和 2 仅支持纵向,控制器 3 支持纵向和横向。
当我返回popping
控制器 3 以返回控制器 2 时,问题出现了,如果我在控制器 3 中处于横向,并且我单击后退按钮,我的控制器 2 以横向显示给我:(控制器 2 确实不支持横向)
然后我必须旋转设备以使方向自行修复。. . .
导航控制器中的代码 - (BOOL)shouldAutorotate { return YES; }
- (NSUInteger)supportedInterfaceOrientations
{
if (LandscapeOK) {
// for iPhone, you could also return UIInterfaceOrientationMaskAllButUpsideDown
return UIInterfaceOrientationMaskAll;
} else {
return UIInterfaceOrientationMaskPortrait;
}
每个 ViewControllersViewWillAppear
方法的代码
[(NavigationViewController *)[self navigationController] setLandscape:YES];
我的代码设置几乎与这个问题完全相同:同样的问题。问题已在大约一年前发布,但还没有合适的解决方案 - 在查看列出的答案时