iOS 8方向错误。适用于7.1

时间:2014-10-08 13:23:51

标签: ios objective-c ios8 uiinterfaceorientation

我有一个被锁定在肖像中的视图,然后我按下第二个视图,我在横向中有它。 在视频播放横向后,它返回到Portrait,这在iOS 7.1中运行良好,但在iOS 8.0上有一些奇怪的错误。

请看这张照片。正如您所看到的,tabBar已经移动到屏幕中间。 enter image description here

在进入视频播放器之前看起来像这样。

enter image description here

我尝试过各种其他设置,例如设置

[self.view.window setFrame:[[UIScreen mainScreen] bounds]];

我目前正在使用MPMoviePlayerViewController来显示我的视频。但是在我回到另一个观点后,它才刚刚开始工作。

它非常奇怪,它适用于iOS 7。 你能帮助我吗?

我控制方向的方式是通过子类化uinavigation控制器并告诉它只在Portrait中然后当我到达视频视图时我告诉它允许景观。然后当它返回时我只允许再次使用肖像。

-(NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscape;
}

-(BOOL)shouldAutorotate{
    return YES;
}

2 个答案:

答案 0 :(得分:0)

面对同样的问题,通过这种方式解决了。在该控制器的viewWillAppear方法中添加此代码,然后在播放视频后回来。

 [[UIDevice currentDevice] setValue:
 [NSNumber numberWithInteger: UIInterfaceOrientationPortrait]
                            forKey:@"orientation"];

然后再添加此方法

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

答案 1 :(得分:0)

如Apple文档中所述,您只能使用以下方法控制iOS8 UIViewController中的方向:viewWillTransitionToSize:withTransitionCoordinator:。因此,遗憾的是,您无法控制特殊控制器中的方向。也许我错过了什么。