Почему текст 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:

Другие вопросы по тегам