Ios 停止并重置NSTimer

Ios 停止并重置NSTimer,ios,nstimer,Ios,Nstimer,我有一个简单的计时器,用一个按钮就可以启动。它从60运行到0没有问题,但我想要的是停止并重置按钮上的计时器。当按下按钮时,我使用下面的代码成功地将其停止,但由于某些原因,无法使其复位并在60时停止。这应该很简单,但不起作用。有什么建议吗 使用简单操作设置计时器 - (IBAction)timerStart:(id)sender { if(!secondCounter == 0){ [countdownTimer invalidate]; } else {

我有一个简单的计时器,用一个按钮就可以启动。它从60运行到0没有问题,但我想要的是停止并重置按钮上的计时器。当按下按钮时,我使用下面的代码成功地将其停止,但由于某些原因,无法使其复位并在60时停止。这应该很简单,但不起作用。有什么建议吗

使用简单操作设置计时器

- (IBAction)timerStart:(id)sender {

if(!secondCounter == 0){
        [countdownTimer invalidate];
    }
    else {
           [self setTimer];
     }
}
定时器代码

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

}

你停止计时器是什么意思?计时器不会停止。您希望必须有
countdownlab.text
才能显示60?当您使计时器无效时,它将停止运行并调用
timerRun
方法,如果您想重新启动计时器,只需再次调用
setTimer
功能即可。我想你的意思是在[countdownTimer invalidate]之后加上
countDownLabel.text=@“60”
当您再次单击按钮时,计时器将再次启动并更改标签。让我知道这是否是你要找的

正如Christian所说,你必须重置第二个计数器

secondCounter = 0;

您需要将秒数设置为0,否则您总是会使计时器无效,但不会再次启动计时器:

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

嗨,燕。目前,它会按预期使计时器无效,并使用您建议的代码将值返回到60。但是,当我再次按下按钮时,它不会重新启动计时器。相反,它是一个死按钮。有什么想法吗?必须在我的
if
代码中。感谢我有缺陷的逻辑Hanks Christian。我接受了杨的答案,因为我使用了他的两部分答案,尽管你的答案很有帮助。我投了赞成票。谢谢。这对我很有效