iOS6.0上的MPMoviePlayerViewController显示BUG完美处理

  LZ最近做一项目,要求:在UITabBarController的框架(当然还有UINavigationController)下面弹出一个视频播放器(全屏,可以横向,可以纵向),当时LZ习惯性的就建了个Demo(简单的UIviewController,无框架),在它的基础上面presentMoviePlayerViewController 了一个自定义的MPMoviePlayerViewController。

设置了以下三个函数

 //固定横屏 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); } 

-(NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscapeRight; } 

-(BOOL)shouldAutorotate { return YES; } ,

然后又在它的父viewController设置了这三个函数(参数不一样,以免出现父view也跟着横屏),在5.0和6.0的模拟器上运行,一切都相当满意,LZ以为这个功能就over了。(严重的教训,一切都要以真实环境为准,别看到效果就以为完事); 结果放到项目里面,发现全部乱套了ios5.0还好,6.0就简直惨不忍睹(各种不能旋转,加弹出界面错乱);

接下来的一周里面,请教各种大神,google都看烂了,也找到各种答案,但是大致就是: 处理UINavigationController的这三个函数,处理UITabBarController的这三个函数,再控制bla bla bla的什么旋转方向;LZ一一尝试各种所谓的可行方法,全部失败; 说了这么多废话,下面的是正解: LZ就在思考了,一样都是ios6.0的模拟器,为什么项目里面会乱,而Demo就很完美,于是呼。。。楼主就把项目的框架改了一下(是不是很邪恶?),当然只是在AppDelegate里面把 _window.rootViewController设置成了自己定义的viewContrller,(之前是TabBarController),然后在需要调用视频的地方,用消息中心传递消息给自己定义的viewContrller触发 [self presentModalViewController:Player animated:YES]; 一切都那么完美!!!

你可能感兴趣的:(iOS6.0上的MPMoviePlayerViewController显示BUG完美处理)