我有一个NSTimer()开始于点击按钮。如果我想让timer
显示在标签上,我可以在同一个视图控制器中执行此操作,但是我希望定时器继续,并且值(1 ... 2 ... 3)显示在下一个视图控制器。我有一个标签,它在下一个视图控制器上显示时间变量,但它只显示时间变量的值,当按钮被按下并且不会继续时。时间变量被传递,但运行它的函数不是。我该怎么做呢?如何使用Swift在ViewControllers中继续使用函数?
var timer = NSTimer()
var time = 0
内部viewDidLoad中:
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("timerFunc"), userInfo: nil, repeats: true)
func timerFunc() {
time++
//time label displays the time (1..2...3 etc)
timeLabel.text = String(time)
}
SecondSceneViewController具有从这个视图控制器通过一个时间变量:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var secondScene = segue.destinationViewController as!
SecondViewController
secondScene.time = time
}
当我去secondViewController,时间变量内的值是什么时候变量是当按下按钮时并且它不会继续运行。我将如何去计时器传递到下一个视图控制器来显示值?
@ carlos-e-hernandez你会如何继续?你会在哪里启动myTimer类? – boehmatron
@boehmatron myTimer类可以使用'sharedInstance'静态方法来访问,它使这个类成为一个单独的类。您可以随处访问它。不是最好的设计,但解决了OP的问题。另一种解决方案是使用依赖注入,拥有一个类自己的myTimer,然后在需要访问它的每个视图控制器上注入myTimer。 – carlos