【发布时间】:2011-11-02 19:44:44
【问题描述】:
我的 iPhone 应用遇到了一个有趣的小问题。我有一个带有表格的视图,每个单元格在单击时会全屏播放视频,然后当您按下完成时,视频会停止并返回到表格视图。唯一的问题是,当您在视频加载的前 2 或 3 秒内按下完成时,当视图返回到表格视图时,屏幕顶部显示时间和电池电量等的栏不再显示在那里,它只是一个空白区域。但是,如果您在前几秒钟后按完成,那么当您返回表格视图时,一切都很好!我完全不知道为什么会发生这种情况,我在互联网上发现的唯一一件事就是这个人和我的问题几乎完全相同:
http://www.iphonedevsdk.com/forum/iphone-sdk-development/53020-disappearing-status-bar.html
这导致我尝试使用:
[UIApplication sharedApplication].statusBarHidden = NO;
然而这也无济于事。
当他们点击视频时执行的代码:
NSString *path = [[NSBundle mainBundle] pathForResource:currentTitle ofType:@"m4v"];
NSURL *url = [NSURL fileURLWithPath:path];
movieController = [[MPMoviePlayerController alloc] initWithContentURL:url];
[movieController setControlStyle:MPMovieControlStyleFullscreen];
[movieController setFullscreen:YES];
movieController.view.frame = self.view.bounds;
[self.view addSubview:movieController.view];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
当视频播放完毕或用户点击完成时执行的代码是:
NSLog(@"movieController moviePlayBackDidFinish");
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
[movieController setFullscreen:NO animated:NO];
[movieController.view removeFromSuperview];
[movieController release];
LiveEventsView *liveEventsView = [[LiveEventsView alloc] initWithNibName:@"LiveEventsView" bundle:nil];
UIView *currentView = self.view;
UIView *theWindow = [currentView superview];
UIView *newView = liveEventsView.view;
newView.frame = CGRectMake(0, 20, 320, 460);
[currentView removeFromSuperview];
[theWindow addSubview:newView];
[UIApplication sharedApplication].statusBarHidden = NO;
如果有人能对这种情况有所了解,我将非常感激,因为这非常令人沮丧!
谢谢,
马特
【问题讨论】:
标签: objective-c mpmovieplayercontroller statusbar