嗨,我正在检查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];
我希望这对其他人有用!
答案 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;
}
但我更喜欢更好的方式。