【发布时间】:2013-03-21 14:50:01
【问题描述】:
使用我的应用时,用户可以点击并观看列表中显示的视频。一旦他们点击该视频,他们就可以将方向更改为纵向或横向。列表页只有纵向。
我面临的错误是当用户观看横向视频并以横向退出页面时,我的列表页面变得一团糟。
每次用户在视频上按下完成并返回列表时,我都需要一种方法将方向转回纵向。
在我确实有的列表页面上
- (BOOL)shouldAutorotate{
return YES;
}
我什至尝试在 viewDidAppear 中调用 shouldAutorotate 方法,但这不起作用。我知道在页面加载后不会调用shouldAutorotate,所以有没有办法检查方向然后翻转它或者无论如何都让它成为纵向?
我仍然需要横向,所以我不会从我的 plist 文件中删除它。
任何帮助都会很棒。谢谢
编辑
这是我如何称呼我的视频播放器
MPMoviePlayerViewController *player=[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:[[main_data objectAtIndex:indexPath.row] objectForKey:@"url"]]];
UIView * playerView = [player view];
[playerView setFrame: CGRectMake(0, 0, 480, 320)];
CGAffineTransform landscapeTransform;
landscapeTransform = CGAffineTransformMakeRotation(90*M_PI/180.0f);
landscapeTransform = CGAffineTransformTranslate(landscapeTransform, 80, 80);
[playerView setTransform: landscapeTransform];
[self presentMoviePlayerViewControllerAnimated:player];
return;
【问题讨论】:
-
也许这个问题可以帮助你stackoverflow.com/questions/2324745/…
-
从视频列表到视频的过渡是如何完成的?模态,还是其他方式?
-
永远不要调用 shouldAutorotate 自己。这不是您可以调用的方法;只有系统应该这样做。自己调用它不会做任何事情。
-
您的目标是 iOS 6 吗?您的部分问题可能是您正在使用来自不同 iOS 版本的轮换方法,但针对的是最新版本,其中轮换已更改。
-
(BOOL)shouldAutorotate应该只返回 YES 或否 - 您还需要将它与(NSInteger)supportedInterfaceOrientations结合起来,正如 Seamus 在下面指出的那样。但是,我确实相信您的问题出在其他地方。我曾经使用过一种旧方法如下:[UIViewController attemptRotationToDeviceOrientation]。当您从视图堆栈中弹出播放器时,看看这是否有效。