繁体   English   中英

Swift:打开ViewController后如何启动NSTimer

[英]Swift: How to start NSTimer once ViewController is opened

我的故事板是这样的:MainNavViewController - > TimerViewController

TimeViewController包含NSTimer和管理它的代码。

一旦TimerViewController打开,NSTimer应自动开始倒计时。

计时器应从02:00到00:00倒计时。

仅在所述ViewController中需要计时器,而不是在下一个或之前的计时器中。

目前,我有以下代码:

var timer = NSTimer()
let timeInterval:NSTimeInterval = 0.05
let timerEnd:NSTimeInterval = 0.0
var timeCount:NSTimeInterval = 120.0

func timerDidEnd(timer:NSTimer){
    timeCount = timeCount - timeInterval
    if timeCount <= 0 {
    TimerLabel.text = "Time's Up!"
    timer.invalidate()
    }
}

func timeString(time:NSTimeInterval) -> String {
    let minutes = Int(time) / 60
    let seconds = time - Double(minutes) * 60
    return String(format:"%02i:%02i",minutes,Int(seconds))
}

func StartTimer() { // Function called in viewDidLoad
    if !timer.valid{
    TimerLabel.text = timeString(timeCount)
    timer = NSTimer.scheduledTimerWithTimeInterval(timeInterval,
    target: self,
    selector: "timerDidEnd:",
    userInfo: nil,
    repeats: true)
    }
}

但是,代码不起作用,timerLabel只设置为02:00没有运行(倒计时)。

每次调用定时器功能时,您都忘记设置文本

func timerDidEnd(timer:NSTimer){
    timeCount = timeCount - timeInterval
    if timeCount <= 0 {
        TimerLabel.text = "Time's Up!"
        timer.invalidate()
    // Start edit
    } else {
        TimerLabel.text = timeString(timeCount)
    }
    // End edit
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM