botón de pausa cuando se presiona de nuevo para reanudar la recarga de los controladores de vista

estoy usandoAVAudioplayer areproducir archivos de audio, Botón de reproducción / pausa para alternar entre reproducción y pausa yNSTimer conaudio player sincronizarview controllers Uno después del otro. Tengo un total de 10 u 11view controllers para cargar uno tras otro.

Cuando se presiona el botón de reproducción la primera vez que comienzaNSTimer, comienza a jugar unaudio file y basado enNSTimer, los controladores de vista cargarán uno tras otro. Cuando se presiona nuevamente el botón de pausa para reanudarlo, se reanuda todo desde ese punto en el archivo de audio,NSTimer yview controllers desde el mismo punto donde se pausó lo que es bueno. Sin embargo, al mismo tiempo comienza a cargar elview controllers de nuevo uno tras otro desde el principio basado enNSTimer que no es bueno

Está recargando controladores de vista con esta declaración

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

Así que mi problema es que necesito detener la carga deview controllers de nuevo desde el principio cuando se presiona nuevamente el botón de pausa para reanudar la reproducción.

-(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];     
 }

¿Alguien puede dar una idea sobre cómo detener la carga deview controllers de nuevo desde el principio cuando se presiona nuevamente el botón de pausa para reanudar la reproducción.

Respuestas a la pregunta(1)

Su respuesta a la pregunta