2016-12-03 61 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

调用从主线程的UI对象,如果我把的setText语句中-willActivate它工作得很好 – Guy

回答

0

是否使用

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

是否正确?

尝试在上面的didReceiveApplicationContext代码中放置一个NSLog,看它是否打印出任何东西。

+0

谢谢,最后我放弃了,并且会在某个时候再次处理,有更高优先级的事情要做 – Guy

0

在我的情况下,当我尝试刷新UI时,发现插座引用是nil。问题是由故事板上的两个接口引起的,属于同一个WKInterfaceController类。 当我将第二个屏幕界面分配给另一个WKInterfaceController类时,它工作正常。

enter image description here

请记得使用

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

,或者使用方法,如performSelectorOnMainThread: withObject: waitUntilDone: