2

我正在开发一个始终以横向模式显示的 iPad 应用程序。在 iOS5 中,我使用“shouldAutorotateToInterfaceOrientation”将值返回为“YES”,并且我还将 info.plist 配置为仅支持横向模式。一切顺利。

在 iOS 6 中,我知道“shouldAutorotateToInterfaceOrientation”方法已被弃用。我在网上进行了很多讨论并尝试了所有建议的解决方案,但结果仍然为零(意思是,iOS6 模拟器以纵向模式显示。

我的代码如下...... 任何建议都非常感谢......</p>

在 AppDelicate.m

MyTestUI *myTest = [[MyTestUI alloc] init];

navigationController = [[UINavigationController alloc] initWithRootViewController:myTest];

[navigationController setNavigationBarHidden:YES];

[self.window addSubview:navigationController.view];

[self.window makeKeyAndVisible];

[myTest release];
   return YES;

在 MyTestUI.m

- (BOOL)shouldAutorotate {

   UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];

   if (orientation == UIInterfaceOrientationPortrait) {


   }

   return YES;
}


 **// iOS 5.1 Fix is below**

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;

}
4

3 回答 3

1

AppDelegate.m

代替

[self.window addSubview:navigationController.view];

使用这个:

[self.window setRootViewController:navigationController];

希望这可以帮助。

于 2013-09-02T10:01:46.720 回答
0

好的,自 iOS 6 以来的方向是从上到下处理的:

  • XCode 摘要中支持的方向:如果您的所有屏幕都支持相同的方向,那么只需使用这个,因为它是最简单的。

  • 如果您根据应用程序的屏幕处理不同的方向规则,那么您希望shouldAutorotatesupportedInterfaceOrientation每个UIViewController. (但请注意,UINavigationController方向不依赖于它的顶部 viewController - 这与您可能期望的相反,因此您可能必须进行子类化UINavigationController才能正确处理:

MytestUI

- (BOOL)shouldAutorotate
{
    return YES;
}


- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

在你的UINavigationController子类中

- (BOOL)shouldAutorotate
{
    return [self.topViewController shouldAutorotate];
}

- (NSUInteger)supportedInterfaceOrientations
{
    return [self.topViewController supportedInterfaceOrientations];
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return [self.topViewController preferredInterfaceOrientationForPresentation];
}
于 2013-09-02T10:12:52.147 回答
0

如果您希望您的应用程序始终处于横向状态,只需在 xcode 的摘要中选择横向。
您的应用现在已锁定为横向

在此处输入图像描述

于 2013-09-02T10:04:15.633 回答