내 응용 프로그램의 다른 viewcontroller에 타이머 (분과 초)를 표시하고 싶습니다. 어떻게해야합니까?Swift에서 다른 UIViewController의 타이머를 표시하는 방법은 무엇입니까?
나는 싱글턴으로 타이머를 사용하려고 생각했지만 매초마다 올바른 라벨을 업데이트하는 방법은 무엇입니까?
내 응용 프로그램의 다른 viewcontroller에 타이머 (분과 초)를 표시하고 싶습니다. 어떻게해야합니까?Swift에서 다른 UIViewController의 타이머를 표시하는 방법은 무엇입니까?
나는 싱글턴으로 타이머를 사용하려고 생각했지만 매초마다 올바른 라벨을 업데이트하는 방법은 무엇입니까?
예, 당신이 사용할 수있는 싱글
이 코드 호출 방법 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()
}
가장 쉬운 방법 - 싱글 에서 NSNotificationCenter를 사용 또는 타이머가 갱신 때 당신은,이 배열에
이 타이머 업데이트 루틴이 발송있는 메시지를 받게됩니다 모든 ViewControllers을 대표하고 통화 방법으로 배열을 만들 수 있습니다 알림. 해당 타이머를 표시하는 데 관심이있는 모든 viewController는 알림을 수신하고 해당 레이블을 업데이트 할 수 있습니다. – vacawama
나는이 방법을 사용했다. 완벽하게 작동한다. 고마워! – Will