кнопка паузы при повторном нажатии для возобновления загрузки контроллеров представления

я используюAVAudioplayer вplay audio files, play/pause button to toggle between play and pause а такжеNSTimer сaudio player синхронизироватьview controllers один за другим. У меня всего 10 или 11view controllers загружать один за другим.

Когда кнопка воспроизведения нажата в самый первый раз, она запускаетсяNSTimerначинает игратьaudio file и на основеNSTimer, контроллеры представления будут загружаться один за другим. Когда кнопка паузы снова нажата для возобновления, она возобновляет все, начиная с этого файла,NSTimer а такжеview controllers с той же точки, где он был приостановлен, что хорошо. Однако в то же время он начинает загружатьview controllers снова один за другим с самого начала на основеNSTimer что не хорошо.

Это перезагружает контроллеры представления с этим оператором

self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0
                                              target:self
                                            selector:@selector(displayviewsAction:)
                                            userInfo:nil
                                             repeats:NO];

Так что моя проблема в том, что мне нужно остановить загрузкуview controllers снова с самого начала при повторном нажатии кнопки паузы для возобновления воспроизведения.

-(void)playpauseAction:(id)sender 
{ 
    if ([audioPlayer isPlaying]) {
        [sender setImage:[UIImage imageNamed:@"Play Icon.png"] forState:UIControlStateSelected];
        [audioPlayer pause];
        [self pauseTimer];
    } else {
        [sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
        [audioPlayer play];
        [self resumeTimer];
        self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0
                                                      target:self
                                                    selector:@selector(displayviewsAction:)
                                                    userInfo:nil
                                                     repeats:NO];
    }       
}

-(void)pauseTimer{
    pauseStart = [[NSDate dateWithTimeIntervalSinceNow:0] retain];
    previousFireDate = [[timer fireDate] retain];
    [timer setFireDate:[NSDate distantFuture]];
}

-(void)resumeTimer{
    float pauseTime = -1*[pauseStart timeIntervalSinceNow];
    [timer setFireDate:[previousFireDate initWithTimeInterval:pauseTime sinceDate:previousFireDate]];
    [pauseStart release];
    [previousFireDate release];    
}

- (void)displayviewsAction:(id)sender
{  
    First *firstController = [[First alloc] init];
    firstController.view.frame = CGRectMake(0, 0, 320, 480);
    CATransition *transitionAnimation = [CATransition animation];  
    [transitionAnimation setDuration:1];    
    [transitionAnimation setType:kCATransitionFade];    
    [transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];    
    [self.view.layer addAnimation:transitionAnimation forKey:kCATransitionFade];
    [self.view addSubview:firstController.view];
    [self.view addSubview:toolbar];
    [firstController release];   
    self.timer = [NSTimer scheduledTimerWithTimeInterval:23 target:self selector:@selector(Second) userInfo:nil repeats:NO];     
 }

Может кто-нибудь дать представление о том, как остановить загрузкуview controllers снова с самого начала при повторном нажатии кнопки паузы для возобновления воспроизведения.

Ответы на вопрос(1)

Ваш ответ на вопрос