如何设置横向的起始方向?

时间:2012-09-27 17:23:49

标签: ios6 xcode4.5

嗨,我正在检查iOS6的方向变化,除了一件事,我做的一切都很好。没有办法在横向上启动应用程序。

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

当我转到另一个视图,然后回到“初始视图”时,它就在风景中!但是,当应用程序启动它时,它就是肖像......

谢谢!

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

这就是我从app委托加载主视图的方式:

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];

我希望这对其他人有用!

3 个答案:

答案 0 :(得分: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];

第二个有效,但第一个没有按照我的预期行事。

答案 1 :(得分:0)

这就是我的工作方式:

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

我希望它可以帮助别人!

答案 2 :(得分:-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;
}

但我更喜欢更好的方式。