一旦连接到NSTimer的计数器达到0,我就试图转向另一个视图控制器。
继承我的计时器代码:
var counter = 15
var timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "timerAction", userInfo: nil, repeats: true)
func timerAction() {
--counter
timerLabel.text = "\(counter)"
答案 0 :(得分:0)
假设您在故事板中设置了标识为mySegueID
的segue,请使用以下代码:
private var timer:NSTimer! //Make sure this is a property of your class
func timerAction() {
--counter
timerLabel.text = "\(counter)"
if (counter == 0) {
timer.invalidate()
timer = nil
performSegueWithIdentifier("mySegueID", sender: nil)
}
}
这将检查计数器是否等于零。如果是,它会阻止你的NSTimer
开火,并调用你在故事板中设置的segue。
答案 1 :(得分:0)
要触发segue,只需在定时器执行时调用适当的方法。
更具体地说,您的计时器方法可以重写。看起来你只想等待15秒然后激活segue,但你的代码通过每秒递减计数器来做到这一点;更好的方法是在延迟后解雇方法;你可以使用GCD更优雅地做:
let delay = dispatch_time(DISPATCH_TIME_NOW, 15 * Int64(NSEC_PER_SEC))
dispatch_after(delay, dispatch_get_main_queue()) { () -> Void in
performSegueWithIdentifier("mySegueID", sender: nil)
}