IOS 6定位

时间:2013-08-20 07:05:38

标签: ios ios6 uinavigationcontroller uiinterfaceorientation

我正在研究一个项目并遇到问题。我的问题是我正在制作5.0及以上的项目,我的项目全部是纵向视图,但只有一个视图同时具有视图(横向和纵向)我正在使用NavigationController自定义类并在自定义导航类中检查这样的Orientations`< / p>

    - (NSUInteger)supportedInterfaceOrientations
  {
int interfaceOrientation = 0;

if (self.viewControllers.count > 0)
{
    id viewController;
    for (viewController in self.viewControllers)
    {
       if ([viewController isKindOfClass:([CalenderViewController class])])
        {
            interfaceOrientation = UIInterfaceOrientationMaskAll;
        }
        else
        {
            interfaceOrientation = UIInterfaceOrientationMaskPortrait;
        }
    }
}
return interfaceOrientation;
}` 

CalenderViewController是我的视图,支持两种视图 当我将视图弹出到CalenderViewController时,此代码适用于popview,这很好但是当我在CalenderViewController上推送一个只有纵向视图的新视图控制器时,新的viewcontroller仍保留在横向中,而它应该处于纵向模式。向前看感谢

1 个答案:

答案 0 :(得分:0)

在这种情况下,您不应该在NO上返回shouldAutorotate。如果这样做,甚至不会检查支持的方向,并且您的控制器将卡在最后使用的方向上。

相反,只需在YES上返回shouldAutorotate并在supportedInterfaceOrientations中指定单个方向(纵向),就像您已经这样做。

YES上返回shouldAutorotate并不仅限于您希望控制器自由旋转到其他方向的时间。在弹出或推送不同的视图后,如果您可能需要控制器旋转回其唯一支持的方向,也应该使用它。