我正在开发仅iPhone应用程序。该应用程序在支持的接口方向中支持纵向和横向方向,但是在应用程序的第一个视图中,我使用以下代码禁用旋转:
- (BOOL)shouldAutorotate
{
return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
现在,我的问题是,当我在iPad处于横向模式的情况下,使用 iOS 6.1 在 iPad 上启动应用程序时,状态栏处于横向模式时,应用程序以纵向模式启动。此外,该应用程序不响应任何触摸。
我尝试在调用
YES
时返回shouldAutorotate
或通过调用[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait]
将状态栏设置为纵向模式,但是当我这样做时,应用程序的方向切换了3次(横向->纵向倒置->纵向),导致了很多启动时闪烁的消息,所以这似乎不是可行的方法,或者是吗? 最佳答案
AppDelegate功能中的功能- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{ }
默认情况下,应用程序和视图控制器的受支持的界面方向对于iPad习惯设置为UIInterfaceOrientationMaskAll,对于iPhone习惯设置为UIInterfaceOrientationMaskAllButUpsideDown。
在supportedInterfaceOrientationsForWindow函数中检查所选的viewcontroller,然后将其设置为纵向。
关于ios - 状态栏保持横向,而UIInterfaceOrientation仅纵向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18612396/