3

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

跟随

-(BOOL)shouldAutorotate{


    return TRUE;

    }

    -(NSUInteger)supportedInterfaceOrientations{

    return UIInterfaceOrientationMaskAll;

    }

在 tha appdelegate 我正在做

self.window.rootViewController = self.splitViewController;

我希望我的应用程序适用于所有方向。但是任何方向都不起作用

正确。有什么帮助吗?我的应用程序是针对 IOS 4.3 的,但它也应该适用于 IOS 5 和 6。

4

1 回答 1

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 请求方向支持。因此我们需要对它进行子类化。

于 2012-10-09T11:39:47.047 回答