为什么WKInterfaceLabel文本没有刷新

时间:2016-12-03 04:46:44

标签: objective-c watch-os-2 wkinterfacelabel

WatchApp从iPhone接收数据。

我用收到的数据刷新标签文本,没有任何反应,UI没有刷新。

其他线程建议将其推送到主线程,这似乎也无所作为。

欢迎任何想法。

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

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

2 个答案:

答案 0 :(得分:0)

您使用的是

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

正确?

尝试在上面的didReceiveApplicationContext代码中放入一个NSLog,看看它是否打印出来。

答案 1 :(得分:0)

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

enter image description here

记得使用

从主线程调用UI对象
dispatch_async(dispatch_get_main_queue(), ^{
   ...
});

或使用performSelectorOnMainThread: withObject: waitUntilDone:

等方法