2016-07-12 22 views
0

私のアプリケーションの異なるビューコントローラーにタイマー(分と秒)を表示したいと思います。どうやってやるの ?Swiftの異なるUIViewControllerにタイマーを表示するにはどうすればいいですか?

私はシングルトンでタイマーを使用することを考えていましたが、毎秒正しいラベルを更新する方法はありますか?

+1

があなたのタイマー更新ルーチンは、送信したメッセージを受信するすべてのViewControllersを代表者とcallメソッドで配列を作成することができます通知。そのタイマーの表示に関心のあるすべてのviewControllerは、通知をリスンしてラベルを更新できます。 – vacawama

+1

私はこのメソッドを使用して、それは完璧に動作します、ありがとう! – Will

答えて

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() 
} 
0

最も簡単な方法 - シングルトン からNSNotificationCenterを使用するか、タイマーが更新したときには、この配列に

関連する問題