2016-12-03 99 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: