2016-07-12 6 views
0

내 응용 프로그램의 다른 viewcontroller에 타이머 (분과 초)를 표시하고 싶습니다. 어떻게해야합니까?Swift에서 다른 UIViewController의 타이머를 표시하는 방법은 무엇입니까?

나는 싱글턴으로 타이머를 사용하려고 생각했지만 매초마다 올바른 라벨을 업데이트하는 방법은 무엇입니까?

+1

이 타이머 업데이트 루틴이 발송있는 메시지를 받게됩니다 모든 ViewControllers을 대표하고 통화 방법으로 배열을 만들 수 있습니다 알림. 해당 타이머를 표시하는 데 관심이있는 모든 viewController는 알림을 수신하고 해당 레이블을 업데이트 할 수 있습니다. – vacawama

+1

나는이 방법을 사용했다. 완벽하게 작동한다. 고마워! – Will

답변

0

예, 당신이 사용할 수있는 싱글

이 코드 호출 방법 updateLabel: 당신은 타이머를 시작한다 싱글에서

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 
} 

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

스위프트 모든 초

의 Obj-C, 컨트롤러에서 레이블 및 값 업데이트를 시작합니다. 중요

타이머를 무효화하는 것을 잊지 않습니다.

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

가장 쉬운 방법 - 싱글 에서 NSNotificationCenter를 사용 또는 타이머가 갱신 때 당신은,이 배열에

관련 문제