splitviewcontroller を使用してアプリを作成していて、ビデオを再生したいと考えています。
分割ビューに 2 つのコントローラーがあります。左(マスター)はVideoMenuTableViewController
右(ディテール)VideoViewController
最初に、自分のコードをviewdidload
ofに配置して、ビデオが機能するかどうかをテストしました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];
ビデオは再生されますが、ビデオが終了または閉じられると、分割ビューはすべてに応答しなくなります。