Detener y restablecer NSTimer

Tengo un timer simple que se activa cuando se presiona un button. Funciona de 60 a 0 sin problema, pero lo que quiero es detener y restablecer el timer al presionar el button. He logrado detenerlo cuando se presiona el button usando el código a continuación, pero por alguna razón no puede hacer que se reinicie y se detiene en 60. Esto debería ser simple pero no funciona. ¿Alguna sugerencia?

El timer se configura mediante una simple acción

- (IBAction)timerStart:(id)sender { if(!secondCounter == 0){ [countdownTimer invalidate]; } else { [self setTimer]; } } 

CÓDIGO PARA TEMPORIZADOR

 - (void)timerRun { secondCounter = secondCounter - 1; int minutes = secondCounter; NSString *timerOutput = [NSString stringWithFormat:@"%d", minutes ]; countDownLabel.text = timerOutput; if(secondCounter == 0){ [countdownTimer invalidate]; countdownTimer = nil; } } - (void)setTimer { secondCounter = 60; countdownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerRun) userInfo:nil repeats:YES]; } 

¿Qué quieres decir para detener el cronómetro? El timer no se detendrá. ¿Te gustaría tener countDownLabel.text para mostrar 60? Cuando invalide el timer, dejará de funcionar y timerRun método timerRun Si desea reiniciar el timer, simplemente llame a la function setTimer nuevamente. Creo que lo que countDownLabel.text = @"60" decir es tener countDownLabel.text = @"60" después de [countdownTimer invalidate]; y cuando hace clic en el button de nuevo, el timer comenzará de nuevo y cambiará la label. Avísame si esto es lo que estabas buscando.

Como Christian dijo que tiene que restablecer el segundo Contador

 secondCounter = 0; 

Debe establecer los segundos en 0, de lo contrario, siempre invalidará su timer, pero nunca lo volverá a iniciar:

 - (IBAction)timerStart:(id)sender { if(!secondCounter == 0) { [countdownTimer invalidate]; secondCounter = 0; } else { [self setTimer]; } }