我有一个非常简单的带有NSTimer的计时器应用程序。我设置了一个“取消”按钮,但不确定如何使它工作。
这是我的计时器代码。当用户按下开始按钮(未显示)时触发。
-(void) timerFunction{
NSString *timerSeconds = _timerSecondsField.text;
NSString *doubleconversion = timerSeconds;
double timersecondsval = [doubleconversion doubleValue];
self.cancelVisibility.hidden = NO;
self.timerSecondsField.hidden = YES;
self.restartTimerVisibility.hidden = YES;
self.timerStatus.hidden= NO;
self.timerStatus.text = (@"Timer Running");
[NSTimer scheduledTimerWithTimeInterval:timersecondsval target:self selector:@selector(timerStatusUpdater) userInfo: nil repeats:NO];
}
基本上,我希望取消按钮停止计时器并重置视图。我尝试使用if语句将“ timersecondsval”更改为0,并使“ timerStatusUpdater”调用我的视图重置函数,而不是调用播放警报声音的函数,但是更改时间没有用,所以我必须等待直到计时器结束以重置视图。 (并且视图重置使我的应用程序崩溃了。)
这是重置视图的代码:
-(void) newView{
self.cancelVisibility.hidden = YES;
self.timerStatus.hidden = YES;
self.restartTimerVisibility.hidden = YES;
self.timerSecondsField.hidden = NO;
}
我还尝试使用像这样的cancel函数来调用新的NSTimer,但是它没有取消以前的函数。这是该代码:
- (IBaction)cancelpressed:(id)sender {
[NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(newView) userInfo: nil repeats:NO];
}
那么我可以添加一个功能来取消以前的NSTimer,以便取消按钮起作用吗?
谢谢!