我正在制作一个带有 splitviewcontroller 的应用程序并想播放视频。
我在拆分视图中有 2 个控制器。左(主)是VideoMenuTableViewController
右(细节)是VideoViewController
首先,我通过将我的代码放入viewdidload
.VideoViewController
像这样:
- (void)viewDidLoad
{
[super viewDidLoad];
self.URLForVideoFile = @"http://api.smit-it.info/TEST/VIDEO/two.mov";
NSURL *fileURL = [NSURL URLWithString:self.URLForVideoFile];
MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc] initWithContentURL:fileURL];
[self presentMoviePlayerViewControllerAnimated:mp];
}
这有效并且视频播放。
现在我尝试通过触摸VideoMenuTableViewController
.
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *SelectedUrl;
SelectedUrl = [[[self.dataSource.videos valueForKey:@"URL"] objectAtIndex:0] objectAtIndex:indexPath.row];
NSLog(@"URL pressed %@",SelectedUrl);
VideosViewController *vvc = [[VideosViewController alloc] init];
vvc.URLForVideoFile = SelectedUrl;
[vvc PlayMovieFromSelectedUrl];
}
在哪里与
应用程序崩溃并给出以下错误PlayMovieFromSelectedUrl
中的代码相同。viewdidload
Warning: Attempt to present <MPMoviePlayerViewController: 0xb25c440>
on <VideosViewController: 0xb2565d0> whose view is not in the window
hierarchy!
但我不明白这个问题,所以我不知道如何解决它。请帮忙。
更新
通过 @PiotrK 添加 3 行代码
UIWindow* keyWindow= [[UIApplication sharedApplication] keyWindow];
[keyWindow addSubview: vvc.view];
[self presentViewController:vvc animated:NO completion:nil];
视频播放,但当视频播放完毕或关闭时,拆分视图停止响应所有内容。