我正在使用MPMoviePlayer显示视频。我进入全屏,当完成按钮被点击时,我希望它从我的视图中删除整个电影播放器。目前它只退出全屏模式。你如何跟踪被点击的doneButton,或者我该如何解决这个问题?
发布于 2011-05-27 01:32:12
您可以通过在MPMoviePlayerDidExitFullscreenNotification上添加通知处理程序来实现这一点,因为一旦用户点击DONE按钮,该通知就会被发送。
在你的初始化器中的某处
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MPMoviePlayerDidExitFullscreen:) name:MPMoviePlayerDidExitFullscreenNotification object:nil];现在实现该处理程序:
- (void)MPMoviePlayerDidExitFullscreen:(NSNotification *)notification
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerDidExitFullscreenNotification
object:nil];
[moviePlayerController stop];
[moviePlayerController.view removeFromSuperview];
}发布于 2011-05-27 01:29:36
据我所知,单击Done按钮时不会通知您。但是,在单击完成按钮后,当电影播放器退出全屏时,您会收到通知。为此,您可以使用MPMoviePlayerDidExitFullscreenNotification
要观察此通知并对其执行操作,需要将以下代码粘贴到包含IBAction的类文件中(将其放入viewDidLoad方法中):
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(exitedFullScreen) name:@"MPMoviePlayerDidExitFullscreenNotification" object:nil];现在您需要在同一个类中创建exitedFullScreen方法:
-(void) exitedFullScreen
{
//Do whatever you want here
}最后,在您的viewDidUnload方法中,粘贴以下行:
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"MPMoviePlayerDidExitFullscreenNotification" object:nil];为了解释到底是怎么回事:
viewDidLoad中的"addObserver“代码行确保负责处理moviePlayer的viewController正在侦听MPMoviePlayerDidExitFullScreen通知。
这一行使得当通知到来时,exitedFullScreen方法被触发,当单击Done按钮时,您将把想要运行的代码放在其中。
在viewDidUnload中,viewController将被卸载,因此您希望停止侦听通知,因此是removeObserver部分。
https://stackoverflow.com/questions/6142571
复制相似问题