2010-10-20 4 views
0

В Ipad (IOS 3.2) Я работаю над приложением, которое должно играть открытие .mov. Когда видео (находясь в startUpVC) закончено, он будет вызывать другой VC для приветственной страницы. После нескольких изменений VC, когда я вызывал функцию [viewController.view removefromSuperView] в делегате, я обнаружил, что приложение называется startUpVC (в фоновом режиме) без каких-либо кодов. Вот мои коды:Проблема с нежелательным повторением MPMoviePlayerViewController

Внутри StartupVC

- (void)loadMovie { 
NSLog(@"Load Movie"); 
NSString *path = [[NSBundle mainBundle] pathForResource:@"opening3" ofType:@"mov" inDirectory:nil]; 
NSURL *movieURL = [NSURL fileURLWithPath:path]; 
MPMoviePlayerViewController *theMoviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL]; 
theMoviePlayer.moviePlayer.movieSourceType = MPMovieSourceTypeFile; 
[theMoviePlayer.moviePlayer setControlStyle:MPMovieControlStyleNone]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieCallback:) 
              name:MPMoviePlayerPlaybackDidFinishNotification object:nil]; 
[theMoviePlayer.moviePlayer.view setFrame:self.view.bounds]; 
[theMoviePlayer.moviePlayer.view setTransform:CGAffineTransformMakeRotation(M_PI/2)]; [self.view addSubview:theMoviePlayer.view]; 
MPMoviePlayerController *startPlayer = [theMoviePlayer moviePlayer]; 
[startPlayer play]; 

В делегатом

- (void)goTitle { 
NSLog(@"go title"); 
IPAD03ViewController *vc = [[IPAD03ViewController alloc] initWithNibName:@"IPAD03ViewController" bundle:nil]; 
[viewController.view removeFromSuperview]; 
[window addSubview:vc.view]; 


- (void)goStart { 
NSLog(@"go Start"); 
PageViewerVC *vc = [[PageViewerVC alloc] initWithPhotoSource:[PageSet samplePhotoSet]]; 
[viewController.view removeFromSuperview]; 
[window addSubview:vc.view]; 
- (void)goCredits { 
NSLog(@"go credits"); 
CredtisVC *vc = [[CredtisVC alloc] initWithNibName:@"Credits" bundle:nil]; 
NSLog(@"1st"); 
[viewController.view removeFromSuperview]; 
NSLog(@"2nd"); 
[window addSubview:vc.view]; 

к веро в том, что, когда я закончил (идти старт) и вызовите делегат для функции goCredits, после (1-го) ([viewController.view remo veFromSuperview];) программа снова воспроизведет фильм в фоновом режиме.

Спасибо!

ответ

0

у вас есть какая-то запутанная сеть звонков, а movieCallBack не отображается. Ваша проблема пахнет излишним выпуском памяти, который затем угадывает указатели на эти методы. У вас есть зомби?

Смежные вопросы