我正在做一个项目,并面临一个问题。我的问题是,我正在做一个5.0及以上的项目,我的项目都在纵向视图中,但只有一个视图同时具有视图(景物和肖像),我使用的是NavigationController自定义类,并在自定义导航类中检查这样的方向
- (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视图时,这段代码工作得很好,但是当我在CalenderViewController上推一个只有纵向视图的新视图控制器时,新的视图控制器就会保持在景致中,而对于解决方案,它应该处于纵向模式.Looking前进。
发布于 2013-08-20 12:59:22
在这种情况下,不应该在shouldAutorotate上返回shouldAutorotate。如果这样做,支持的方向甚至不会被检查,您的控制器将卡在最后一个使用的方向上。
相反,只需在YES上返回shouldAutorotate,并在supportedInterfaceOrientations中指定一个方向(纵向),就像您已经做的那样。
返回YES on shouldAutorotate不仅仅是为了当您希望控制器自由地旋转到其他方向时。当您可能需要您的控制器在弹出或推送不同视图后返回到它唯一支持的方向时,也应该使用它。
https://stackoverflow.com/questions/18328889
复制相似问题