2016-12-03 3 views
0

WatchApp은 iPhone에서 데이터를 수신합니다.WKInterfaceLabel 텍스트가 새로 고침되지 않는 이유

받은 데이터로 라벨 텍스트를 새로 고침해도 아무 일도 일어나지 않으며 UI가 새로 고쳐지지 않습니다.

다른 스레드는 기본 스레드로 밀어 넣는 것이 좋으며 아무 것도하지 않는 것으로 보입니다.

모든 의견을 환영합니다.

-(void)session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary *)applicationContext 

{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
    [self.lblTitleBorH setText:@"test"]; 
    }); 
} 
+0

처럼 사용하는 방법

dispatch_async(dispatch_get_main_queue(), ^{ ... }); 

를 사용하거나하여 메인 스레드에서 UI 객체를 호출하는 기억 나는 -willActivate 내부의 setText 문을 넣으면 그냥 작동 좋은 – Guy

답변

0

제대로

[*your session* updateApplicationContext:*your dictionary* error:nil]; 

를 사용하고 있습니까?

위의 didReceiveApplicationContext 코드 안에 NSLog를 넣고 아무것도 인쇄하지 않는지 확인해보십시오.

+0

결국, 나는 포기하고 어느 시점에서 다시 태클을 할 것이고, 더 높은 우선 순위의 일을해야한다. – Guy

0

내 경우 UI 새로 고침을 시도했을 때 콘센트 참조가 nil 인 것을 발견했습니다. 이 문제는 동일한 WKInterfaceController 클래스에 속하는 스토리 보드의 두 인터페이스로 인해 발생했습니다. 두 번째 화면 인터페이스를 다른 WKInterfaceController 클래스에 할당하면 잘 동작합니다.

enter image description here

performSelectorOnMainThread: withObject: waitUntilDone:

관련 문제