我搜索了其他现有帖子,但没有一个符合我的要求。
这是我面临的问题,
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{ return (interfaceOrientation != UIInterfaceOrientationPortrait); }
当我启动应用程序时,模拟器始终以纵向打开,我的视图在纵向模式下全部搞砸了,因为它仅针对景观设计。 切换到横向后,设备将保持此模式。
任何人都可以帮我解决这个问题吗?
由于 纳温
已编辑:
此信息可能会有所帮助,只有当我在Portrait中按住设备然后启动应用程序时才会遇到问题。
这不是这个问题的重复,只适用于iPhone或iPad的风景模式
Landscape Mode ONLY for iPhone or iPad
我不希望我的应用只在横向,我只希望我的应用的第一个屏幕只在横向。
答案 0 :(得分:5)
我做了一些我正在研究的具有相同要求的应用程序的实验,并提出了以下内容:
要设置首次启动应用时支持的初始方向,请使用目标的“支持的设备方向”设置。 也可以使用适当的shouldAutorotateToInterfaceOrientation代码备份,就像您已经完成的那样。
对于后续屏幕,只需使用shouldAutorotateToInterfaceOrientation代码来确定要支持的方向。即使您仅为支持的设备方向指定了横向模式,shouldAutorotateToInterfaceOrientation也会获胜。 :)
我认为这种方法比使用额外的虚拟VC更清洁。
答案 1 :(得分:1)
我为问题找到了解决方法并解决了,
我创建了一个虚拟视图控制器并添加为Window的根视图控制器。
在实施中添加了以下方法
-(void)viewDidAppear:(BOOL)animated
{
WelcomeScreen *welcomeScreen = [[[WelcomeScreen alloc] initWithNibName:@"WelcomeScreen" bundle:nil] autorelease];
[self presentModalViewController:welcomeScreen animated:NO];
}
现在它按预期工作了。
答案 2 :(得分:0)
以下是SO link,希望能够回答有关如何在横向模式下启动应用的问题。