SWIFT:invalidate()

时间:2016-01-30 18:32:53

标签: swift nstimer

我在swift中使用NSTimer

我在mainViewController上启动NSTimer,当我点击按钮时,我移动到另一个视图(类型:模态),并且计时器在后台工作正常,但是当我返回主视图控制器时,我的计时器是重复的...所以如何停止计时器在antoher View?

override func viewDidLoad() {
 super.viewDidLoad()

 countDownTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "timerDown", userInfo: nil, repeats: true)

}

2 个答案:

答案 0 :(得分:0)

如果当您从模态视图“返回”时再次执行viewDidLoad,则可能实际上并未返回但是会触发到新实例的segue。如果使用展开segue返回主视图,viewDidLoad将不会再次执行,如果您需要停止计时器,您将在原始实例上。

答案 1 :(得分:0)

据我所知,你的目标是不要复制计时器。 为此,您只需检查计时器是否为空...

override func viewDidLoad() {
 super.viewDidLoad()


if(countDownTimer==nil)
{
    countDownTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "timerDown", userInfo: nil, repeats: true)
}

}