iPad SDK:如何挂钩到MPMoviePlayerViewController的完成按钮?

but*_*boy 7 ipad

我正在创建一个iPad添加,我正在使用MPMoviePlayerViewController播放视频.

该视频占据了整个iPad屏幕.

playerViewController.view.frame = self.view.frame;
Run Code Online (Sandbox Code Playgroud)

我需要一种方法让用户能够按下按钮转到不同的屏幕.

我注意到,当我创建MPMoviePlayerViewController时,导航控制器中会自动显示一个完成按钮.

我的问题:

a.)无论如何都要挂钩现有的完成按钮?基本上我只是想解雇视图控制器.

b.)如果这不起作用.如何添加自己的自定义按钮?如上所述,MPMoviePlayerViewController占据整个屏幕.我的一个想法是在框架中创建MPMoviePlayerViewController并留下一些垂直空间,以便我可以添加自己的工具栏.

我更喜欢有关如何实施的建议.)?

如果这是不可能的,可能有一些关于如何通过按下按钮来关闭MPMoviePlayerViewController的建议?

所有帮助赞赏.

jtb*_*des 10

来自文档:

当播放器转出全屏模式时,完成按钮会导致电影播放暂停.如果要在代码中检测此方案,则应监视其他通知,例如MPMoviePlayerDidExitFullscreenNotification.

因此,请尝试观察此通知:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlayerDidExitFullscreen:)
                                             name:MPMoviePlayerDidExitFullscreenNotification
                                           object:nil];
Run Code Online (Sandbox Code Playgroud)

然后:

- (void)moviePlayerDidExitFullscreen:(NSNotification *)theNotification {
    // do whatever you need to...
}
Run Code Online (Sandbox Code Playgroud)

编辑:我想我误解了你的问题.你想要的是方法
-dismissMoviePlayerViewControllerAnimated

我假设你正在使用它-presentMoviePlayerViewControllerAnimated:?您可以使用moviePlayer.navigationItem.rightBarButtonItem(或左侧或任意位置)添加按钮.将此按钮的目标设置为视图控制器,并拦截要调用的操作-dismiss...


use*_*300 8

您好,可以使用jbandes所说的

[[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(playbackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:theMoviePlayer.moviePlayer];
Run Code Online (Sandbox Code Playgroud)