私のアプリケーションの異なるビューコントローラーにタイマー(分と秒)を表示したいと思います。どうやってやるの ?Swiftの異なるUIViewControllerにタイマーを表示するにはどうすればいいですか?
私はシングルトンでタイマーを使用することを考えていましたが、毎秒正しいラベルを更新する方法はありますか?
私のアプリケーションの異なるビューコントローラーにタイマー(分と秒)を表示したいと思います。どうやってやるの ?Swiftの異なるUIViewControllerにタイマーを表示するにはどうすればいいですか?
私はシングルトンでタイマーを使用することを考えていましたが、毎秒正しいラベルを更新する方法はありますか?
はい、あなたはすべての秒このコードの呼び出し方法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()
}
最も簡単な方法 - シングルトン からNSNotificationCenterを使用するか、タイマーが更新したときには、この配列に
があなたのタイマー更新ルーチンは、送信したメッセージを受信するすべてのViewControllersを代表者とcallメソッドで配列を作成することができます通知。そのタイマーの表示に関心のあるすべてのviewControllerは、通知をリスンしてラベルを更新できます。 – vacawama
私はこのメソッドを使用して、それは完璧に動作します、ありがとう! – Will