我有3个视图的层次结构
我为NavigationViewController创建了一个子类,并设置了一个属性Landscape
,它确定每个viewController是否可以支持不同的方向。
此属性在每个View控制器的ViewWillAppear
中设置:这非常有效。控制器1和2仅为纵向,控制器3支持纵向和横向。
当我回到popping
控制器3回到控制器2时,问题就出现了
如果我在横向控制器3中,我单击后退按钮,我的控制器2将以横向方式呈现给我:(控制器2不支持横向)
然后我必须旋转设备以确定方向以自行修复。 。 。 。
导航控制器中的代码 - (BOOL)应该是Autorotate { 返回YES; }
- (NSUInteger)supportedInterfaceOrientations
{
if (LandscapeOK) {
// for iPhone, you could also return UIInterfaceOrientationMaskAllButUpsideDown
return UIInterfaceOrientationMaskAll;
} else {
return UIInterfaceOrientationMaskPortrait;
}
每个ViewControllers的代码ViewWillAppear
方法
[(NavigationViewController *)[self navigationController] setLandscape:YES];
我的代码设置与此问题几乎完全相同:同样的问题也是如此。问题是在一年左右的时间内发布的,但尚未找到合适的解决方案 - 同时列出了所列的答案
iOS 6: How do I restrict some views to portrait and allow others to rotate?
答案 0 :(得分:0)
鉴于 1.你对我的评论的回复, 2.您已尝试过以下建议的解决方案:
iOS 6: How do I restrict some views to portrait and allow others to rotate?
我认为,您可以在所有控制器上访问相同/共同的属性LandscapeOK。
当您从Controller 3导航回控制器2时,我建议您在supportedInterfaceOrientations中调试和检查LandscapeOK的值。