除了主视图控制器之外,我想支持所有视图的所有方向。我似乎找不到办法做到这一点。
我可以支持所有视图的方向,也可以不支持整个应用中的视图。您如何支持整个应用程序中某些视图的方向?
答案 0 :(得分:1)
我还没有使用过你需要按照你描述的方式行事的应用程序,但以下是Apple文档在你需要控制定向支持时的建议:
动态控制是否发生旋转
有时您可能想要动态禁用自动旋转。对于 例如,您可以在要抑制旋转时执行此操作 完全在短时间内。你必须暂时禁用 方向改变你想手动控制的位置 状态栏(例如当你打电话给 setStatusBarOrientation:animated:method)。
<强>&GT;如果要暂时禁用自动旋转,请避免 操纵方向掩码来做到这一点。相反,覆盖 最顶层视图控制器上的shouldAutorotate方法。这个方法是 在执行任何自动旋转之前调用。如果它返回NO,那么 旋转被抑制。
答案 1 :(得分:1)
将最顶层的控制器子类化。
例如,您只需要一个导航控制器作为最顶层的控制器
子类UINavigationController
并在子类的.m文件中写下以下代码行
- (BOOL)shouldAutorotate
{
return [[self.viewControllers lastObject] shouldAutorotate];
}
- (NSUInteger)supportedInterfaceOrientations
{
return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}
现在覆盖项目中每个控制器的方法- (BOOL)shouldAutorotate
。
返回TRUE
表示您需要进行旋转的控制器,并为那些您不需要旋转的控制器返回FALSE
。
干杯!!!!!