2016-10-06 44 views
0

UIボタンをクリックしてタイマーをリセットして一時停止させたいのですが、タイマーを「リセット」するときに問題があります。誰も助けることができますか?時間を開始し、リセットしてから再開すると、update funcが複数回呼び出され、カウントダウンが終了します。timer.invalidate()を使用せずにタイマーをリセット&一時停止する方法

@IBAction func startTimer (_ sender: AnyObject) { 
var timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: Selector("update"), userInfo: nil, repeats: true) 
    Reset.isHidden = false 
    StartButton.isHidden = true 
} 

@IBAction func resetButton (_ sender: AnyObject) { 
    Reset.isHidden = true 
    StartButton.isHidden = false 
    count = 200 
    invalidate.t 
} 



func update() { 
    if (count > 0) { 
     let minutes = String(count/60) 
     let seconds = String(count % 60) 
     if (seconds == "0") { 
     CountDown.text = minutes + ":" + seconds + "0" 
     } else { 
     CountDown.text = minutes + ":" + seconds 
     } 
     count -= 1 
    } 
} 

答えて

1

はあなたresetButtonメソッド内timer.invalidate()を呼び出してみましたがありますか?

+0

ありがとうございました! "解決されていない識別子 'timer'の使用 – Andrew

+0

タイマーをクラス内のインスタンス変数にして、他の場所からアクセスできるようにする必要があります。 –

+0

これは素早く、私は個人的な印がついていない限りどこでも変数にアクセスできたと思いましたか? – Andrew

関連する問題