2016-01-30 27 views
-1

我使用的NSTimer在迅速SWIFT:无效()

我对mainViewController开始的NSTimer,当我点击按钮,我移动到另一个视图(类型:莫代尔),并在后台一切正常,定时器的作品,但我回来的时候主viewController我的计时器是重复的所以...如何停止antoher视图上的计时器?

override func viewDidLoad() { 
super.viewDidLoad() 

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

} 
+0

在mainViewController哪儿你开始计时?请发布与定时器设置相关的代码。 –

+0

我添加了定时器代码 – user3546854

+0

除了为什么,您可以将'countDownTimer'更改为可选的,并执行:'countDownTimer = countDownTimer ?? NSTimer .......' – Eendje

回答

0

如果viewDidLoad中再次执行时,你从你的模式视图“回来”,你可能没有真正回来,但触发SEGUE到一个新的实例。如果您使用unwind segue返回到主视图,则viewDidLoad将不会再次执行,并且如果您需要停止计时器,则将位于原始实例上。

0

据我了解你的目标是你不重复计时器。 为了做到这一点,你可以简单地检查计时器是空...

override func viewDidLoad() { 
super.viewDidLoad() 


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

}