1

目前,我在所有视图中都有此代码,我不想进入横向,除了一个:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// You do not need this method if you are not supporting earlier iOS Versions
return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}

-(NSUInteger)supportedInterfaceOrientations
{
if (self.selectedViewController)
    return [self.selectedViewController supportedInterfaceOrientations];

return UIInterfaceOrientationMaskPortrait;
}

-(BOOL)shouldAutorotate
{
return YES;
}

这是我的标签栏控制器中的代码:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// You do not need this method if you are not supporting earlier iOS Versions
return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}

-(NSUInteger)supportedInterfaceOrientations
{
if (self.selectedViewController)
    return [self.selectedViewController supportedInterfaceOrientations];

return UIInterfaceOrientationMaskPortrait;
}

-(BOOL)shouldAutorotate
{
return YES;
}

最后是我想要进入横向的视图控制器中的代码(因为有一个视频):

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}

- (BOOL)shouldAutorotate
{
return YES;
}

- (NSInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}

视图都像我想要的那样旋转,唯一的问题是当带有视频的视图控制器旋转时,然后您单击另一个视图,该视图将保持在横向,我想要发生的是这个视图直接旋转成纵向无需用户将设备旋转为纵向。有人知道我需要什么代码吗?

4

1 回答 1

0

这可能是一个难以优雅地解决的问题。强制方向可能会违反人机界面规则规则,或者过去只需要调用私有 API

我建议尝试一种过去对我有用的不同方法。当用户旋转显示视频的一个视图控制器时,允许其旋转,但此时删除用户可以导航离开的任何方式,然后在他们将设备旋转回纵向时返回这些导航控件。对我来说,它只是隐藏导航栏,直到他们返回肖像。我喜欢这个,因为用户很清楚他们必须在继续前进之前将手机恢复为纵向,并且他们不会对导航到神奇的另一个方向的其他地方感到惊讶。

于 2013-02-13T23:57:59.687 回答