设备方向不适用于我的应用

时间:2012-10-09 11:35:38

标签: objective-c xcode uiinterfaceorientation

我在实现设备定位方法时遇到问题。我正在实施它

如下

-(BOOL)shouldAutorotate{


    return TRUE;

    }

    -(NSUInteger)supportedInterfaceOrientations{

    return UIInterfaceOrientationMaskAll;

    }

我正在做appdelegate

self.window.rootViewController = self.splitViewController;

我希望我的应用能够适用于所有方向。但没有一个方向正在发挥作用

正确。任何帮助?我的应用程序是针对IOS 4.3的,但它也适用于IOS 5和6。

1 个答案:

答案 0 :(得分:3)

首先,在AppDelegate中,写下这个。这非常重要

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
     return (UIInterfaceOrientationMaskAll);
}

此外,很大程度上取决于您的UIViewController嵌入在哪个控制器中。

例如,如果它在UINavigationController中,那么你可能需要将UINavigationController子类化为覆盖这样的方向方法。

子类化UINavigationController(层次结构的顶层视图控制器将控制方向。)需要将其设置为self.window.rootViewController。

- (BOOL)shouldAutorotate
 {
     return self.topViewController.shouldAutorotate;
 }
 - (NSUInteger)supportedInterfaceOrientations
 {
     return self.topViewController.supportedInterfaceOrientations;
 }

从iOS 6开始,UINavigationController不会要求其UIVIewControllers提供方向支持。因此我们需要将其子类化。