3

嗨,我正在检查 iOS6 的方向变化,除了一件事,我让一切正常。无法在横向上启动应用程序。

如何在横向上启动应用程序?我发现这个How to force a UIViewController to Portraitorientation in iOS 6但这不起作用,应用程序总是以纵向启动,我需要在横向启动它...

当我转到另一个视图然后返回“初始视图”时,它是横向的!但是当应用程序启动时,它是纵向的......

谢谢!!

- - - - - - - - - - - - - - - 更新 - - - - - - - - - - ------------

这就是我从应用程序委托主视图加载的方式:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
myViewController = [[myViewController alloc] init];

self.navController = [[UINavigationController alloc] initWithRootViewController:myViewController] ;

[self.window setRootViewController:navController];
[self.window makeKeyAndVisible];

----------------------------- 更新 2-------------------- ------------ 我成功了,我将之前的代码更改为:

self.navController = [[UINavigationController alloc] init] ;
[self.window setRootViewController:navController];
[self.window makeKeyAndVisible];
[navController presentViewController:myViewController animated:NO completion:NULL];

我希望这对其他人有用!

4

3 回答 3

0

你试过这个吗?

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:YES];

或者

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES];

这在 iOS 6 和 iOS 5 中都适用于我

我在尝试旋转屏幕时遇到了另一个问题,而不是我意识到我犯了尝试加载新屏幕的错误:

[self.navigationController presentModalViewController:controller animated:YES];

代替:

[self.navigationController pushViewController:controller animated:YES];

第二个有效,但第一个没有达到我的预期。

于 2012-09-27T17:57:19.357 回答
0

这就是我使它工作的方式:

self.navController = [[UINavigationController alloc] init] ;
[self.window setRootViewController:navController];
[self.window makeKeyAndVisible];
[navController presentViewController:myViewController animated:NO completion:NULL];

我希望它可以帮助别人!

于 2012-11-19T13:13:10.423 回答
-1

我也一直在努力解决这个问题 - 这就是我修复它的方法:

在 viewDidLoad 中:

CGRect frame = self.view.bounds;

if (frame.size.height > frame.size.width) {
    //hack to force landscape
    CGFloat holdHeight = frame.size.height;
    frame.size.height = frame.size.width;
    frame.size.width = holdHeight;
    self.view.bounds = frame;
}

但我更喜欢更好的方法。

于 2012-11-14T23:00:32.173 回答