Почему текст WKInterfaceLabel не обновляется
WatchApp получает данные с iPhone.
Я обновляю текст метки полученными данными, ничего не происходит, пользовательский интерфейс не обновляется.
Другие темы предлагали перенести его в основной поток, и это, похоже, тоже ничего не делает.
Любые мысли приветствуются.
-(void)session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary *)applicationContext
{
dispatch_async(dispatch_get_main_queue(), ^{
[self.lblTitleBorH setText:@"test"];
});
}
2 ответа
Ты используешь
[*your session* updateApplicationContext:*your dictionary* error:nil];
правильно?
попробуйте поместить NSLog в вышеупомянутый код didReceiveApplicationContext и посмотрите, печатает ли он что-нибудь.
В моем случае, когда я попытался обновить пользовательский интерфейс, я обнаружил, что ссылки на розетки были nil
, Проблема была вызвана двумя интерфейсами на раскадровке, принадлежащими к одному WKInterfaceController
учебный класс. Когда я назначил интерфейс второго экрана другому классу WKInterfaceController, он работал нормально.
не забудьте вызвать объекты пользовательского интерфейса из основного потока, используя
dispatch_async(dispatch_get_main_queue(), ^{
...
});
или с помощью методов, таких как performSelectorOnMainThread: withObject: waitUntilDone: