我有一个支持UIDeviceOrientationPortrait和UIDeviceOrientationLandscapeLeft的iPad应用。
我确实包含了这种方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait ||
interfaceOrientation == UIInterfaceOrientationLandscapeLeft );
}
我遇到的问题是我需要在UIDeviceOrientationLandscapeLeft模式下加载,只是为了加载,因为我的UI控件将被正确设置。如何才能在加载时强制它。
我想注意的一点是,这必须是iOS 5。
答案 0 :(得分:1)
即使这个答案不符合您的预期:
给自己一个帮助:强迫设备进入特定方向非常复杂。
你可以在这里搜索SO,所有工作和不工作,并在6.1而不是在6.01中工作。等等。
最快,最安全的是,修复你的代码,以便它可以在两个方向进行核心初始化。
答案 1 :(得分:1)
我最近有类似的问题,但是我想通过强制从Landscape改为Portrait,我知道在旧版本中有内置的方法,但不幸的是我们永远不知道什么时候和什么对我们有效,但我给了这个代码尝试它对我有用,但我的场景是强制从横向到纵向,这与你的场景相反,但无论如何它都有效,这里是你的场景可能的代码;
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
-(void)viewWillAppear:(BOOL)animated {
UIApplication* application = [UIApplication sharedApplication];
if (application.statusBarOrientation != UIInterfaceOrientationLandscapeLeft)
{
UIViewController *c = [[UIViewController alloc]init];
[self presentModalViewController:c animated:NO];
[self dismissModalViewControllerAnimated:NO];
}
[super viewWillAppear:animated];
}
在IOS 6.1上工作的编辑我已经添加了两个我在之前的帖子中没有添加的方法,我现在添加了所有适用于我的应用程序的方法......
- (BOOL)shouldAutorotate
{
return NO;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeLeft;
}
这个想法是检查状态栏orietnation并添加和解除modalViewController,它可以让我从一个方向强制到另一个方向。
答案 2 :(得分:0)
项目设置或信息文件中的更新
在iOS 6.x中,您应该覆盖supportedInterfaceOrientations
。
另请尝试preferredInterfaceOrientationForPresentation
。
答案 3 :(得分:0)
尽管有任何应用Info.plist
设置或-shouldAutorotateToInterfaceOrientation:
(或-shouldAutorotate
)方法覆盖,视图控制器仍以纵向方式开始,然后由iOS旋转为横向。
什么阻止您的UI布局正确设置?