如何在Swift中的不同UIViewControllers中显示计时器?

时间:2016-07-12 11:36:49

标签: ios swift timer singleton nstimer

我想在我的应用程序的不同viewcontrollers中显示一个计时器(分钟和秒)。我怎么能这样做?

我在考虑使用带有Singleton的计时器,但是如何每秒更新正确的标签?

2 个答案:

答案 0 :(得分:0)

是的,您可以使用单身

此代码调用方法updateLabel:每秒

的OBJ-C

NSTimer* timer = [NSTimer timerWithTimeInterval:1.0f target:self selector:@selector(updateLabel:) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

夫特

var myTimer: NSTimer? = nil
override func viewDidAppear(animated: Bool) {     
    myTimer = NSTimer(timeInterval: 1.0, target: self, selector: #selector(MyClass.updateAmazing),
   userInfo: nil, repeats: true)
}

func updateAmazing() {
    //update
}

在单身人士中,您应该启动计时器,在控制器上开始更新标签,并从单身人员获取值。

重要

不要忘记使计时器无效。

override func viewDidDisappear(animated: Bool) {
    super.viewDidDisappear(animated)
    myTimer.invalidate()
}

答案 1 :(得分:0)

最简单的方法 - 使用Singleton的NSNotificationCenter 或者你可以在更新计时器时使用委托和调用方法创建数组,此数组中的所有ViewControllers都将接收消息