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