2016-12-03 6 views
0

WatchApp получает данные с iPhone.Почему текст WKInterfaceLabel не обновляется

Я обновляю текст этикетки с полученными данными, ничего не происходит, пользовательский интерфейс не освежает.

Другие темы, предлагающие подталкивать его к основной нити, и это тоже ничего не делает.

Любые мысли приветствуются.

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

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

и если я кладу заявление SetText внутри -willActivate это работает только fine – Guy

ответ

0

Вы используете

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

правильно?

попробуйте установить NSLog внутри вашего вышеуказанного кода didReceiveApplicationContext и посмотреть, не распечатано ли что-либо.

+0

Спасибо, в конце концов я сдался и снова займусь в какой-то момент, имел более высокий приоритет – Guy

0

В моем случае, когда я попытался обновить пользовательский интерфейс, я обнаружил, что ссылки на выход были nil. Проблема была вызвана двумя интерфейсами на раскадровке, принадлежащими к тому же классу WKInterfaceController. Когда я назначил второй интерфейс экрана другому классу WKInterfaceController, он работал нормально.

enter image description here

запомнить называть объекты UI от основного потока с помощью

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

или методами с использованием как performSelectorOnMainThread: withObject: waitUntilDone:

Смежные вопросы