在我的应用程序中,几乎可以在任何地方打开视频。视频播放器是一个UIViewController子类,它包含一个MPMoviePlayerController,并显示在我的应用程序的rootViewController上。
我使用以下代码在我的应用程序中显示ViewController,并自定义转换为
// When the glitch occurs, the rootViewController still has a presentedViewController
if (self.rootViewController.presentedViewController)
[self.rootViewController dismissViewControllerAnimated:NO completion:^{}];
CATransition* transition = [CATransition animation];
transition.duration = 0.3;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
UIWindow* window = self.appDelegate.window;
[window.layer addAnimation:transition forKey:nil];
[self.rootViewController presentViewController:viewController animated:NO completion:^{}];
99%的时间这个工作正常,有所期望的结果,但有时,真的随机我得到一个非常奇怪的故障。视频播放器ViewController是可见的,我的应用程序的rootViewController从我的视频播放器顶部右侧滑入。
基本上,转换应用于rootViewController而不是视频ViewController。此时无法在我的应用中打开视频,因为rootViewController在视频播放器ViewController的顶部进行从右到左的过渡。
如何防止这种故障发生?我试图从rootViewController中解除任何活动的presentViewController,然后再呈现一个新的但没有解决问题。
提前致谢。