timer.invalidate()不在Swift中的同一视图上工作

时间:2014-08-05 07:21:06

标签: ios objective-c swift nstimer

我正在使用Swift开发一个使用计时器的应用程序,因此我将此代码用于计时器

var timer = NSTimer()
timer=NSTimer.scheduledTimerWithTimeInterval(1.0,target:self,selector:Selector("updateTimeLabel"), userInfo:nil , repeats: true)

我的问题是当这个游戏完成一个视图显示为当前视图的子视图并且计时器无效时使用

timer.invalidate()

在这个子视图中,有一个按钮可以在按下此按钮时启动新游戏,但是计时器从停止时开始。

假设游戏在00:10完成,所以子视图出现,如果我们开始新游戏,那么时间将从00:11开始。当用户移动到另一个视图然后返回到相同的视图进行游戏时,这可以正常工作,在这种情况下,计时器从00:00开始 请告诉我错在哪里

感谢先生。

3 个答案:

答案 0 :(得分:2)

当他决定开始新游戏时,你应该重置你的timeSec和timeMin变量。

换句话说,只要该按钮的子视图从其超级视图中删除,请重置它。

或者,进入该按钮操作。

答案 1 :(得分:1)

重置更新updateTimeLabel方法中标签的sec和minute变量。这样做

答案 2 :(得分:0)

您的计时器仅用于触发将更新时间标签的方法。

游戏结束时,您需要将保存已用时间的变量重置为零。您的案例中可能timeSec,由GameScreen班级保留。