Xcode iphone定向支持某些视图

时间:2012-11-19 01:42:39

标签: iphone ios xcode ipad

除了主视图控制器之外,我想支持所有视图的所有方向。我似乎找不到办法做到这一点。

我可以支持所有视图的方向,也可以不支持整个应用中的视图。您如何支持整个应用程序中某些视图的方向?

2 个答案:

答案 0 :(得分:1)

我还没有使用过你需要按照你描述的方式行事的应用程序,但以下是Apple文档在你需要控制定向支持时的建议:

  

动态控制是否发生旋转

     

有时您可能想要动态禁用自动旋转。对于   例如,您可以在要抑制旋转时执行此操作   完全在短时间内。你必须暂时禁用   方向改变你想手动控制的位置   状态栏(例如当你打电话给   setStatusBarOrientation:animated:method)。

     

<强>&GT;如果要暂时禁用自动旋转,请避免   操纵方向掩码来做到这一点。相反,覆盖   最顶层视图控制器上的shouldAutorotate方法。这个方法是   在执行任何自动旋转之前调用。如果它返回NO,那么   旋转被抑制。

来源:http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/RespondingtoDeviceOrientationChanges/RespondingtoDeviceOrientationChanges.html#//apple_ref/doc/uid/TP40007457-CH7-SW1

答案 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

干杯!!!!!