我创建了一个以模态视图启动页面开头的拆分视图应用程序。问题是模态视图总是以纵向模式启动,即使ipad处于横向模式。如果我旋转ipad几次,它会适当旋转。我在Info.plist中设置了UIInterfaceOrientation,但它没有任何影响。
在 didFinishLaunchingWithOptions 中,我使用以下代码
...
[self.window addSubview:splitViewController.view];
SplashViewController *modalView = [[SplashViewController alloc] intiWithNibName:nil bundle:nil];
modalView.modalPresentationStyle = UIModalPresentationFullScreen;
[splitViewController presentModalViewController:modalView animated:YES];
...
关于如何确保模态视图在横向中启动的任何建议?
答案 0 :(得分:1)
使用Matt Gemmell's MGSplitViewController时遇到了类似的问题。在我的例子中,通过尝试从详细视图控制器(即UISplitViewController标准中的“右侧”窗格)内部以FormSheet模式打开模态视图控制器,我的模态视图强制界面旋转为纵向。 我通过覆盖模态视图控制器找到了解决方案 - > shouldAutorotateToInterfaceOrientation:让他回来NO:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Overriden to allow any orientation.
return NO;
}
通过这种方式,当出现模态时,由于某种原因,操作系统会尝试将其强制为肖像。通过回答NO,视图不再旋转,一切正常。
答案 1 :(得分:1)
我认为这是更好的方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation==UIInterfaceOrientationLandscapeRight) {
return YES;
}
return NO;
}
答案 2 :(得分:0)
在启动模态视图的文件中,您需要更改/覆盖以下功能。您只需复制并粘贴以下代码,您就可以在 portrait 横向模式中启动模态视图:
- (BOOL)shouldAutoRotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
祝你好运。
编辑:我说的是肖像模式,而不是我的意思:横向模式。