Я бился головой о стену о том, что не так с моим приложением, так как каждый раз, когда я запускаю приложение на часах, я получаю индикатор вращения, и он просто остается таким же , пока я не нажму заводную головку один раз, чтобы выйтидомой, а затем снова нажмите приложение, а затем оно загружается просто отлично.
У меня нет часов Apple, поэтому я тестирую их на симуляторе (возможно, это проблема самого симулятора и может работать нормальнона устройстве?).Я пытался удалить приложение, сбросить симулятор, очистить папку сборки и т. Д. Несколько раз.
Мне нужно представить динамическое количество страниц, поэтому я не могу использовать переход от раскадровки.Я следую этой документации Apple: https://developer.apple.com/library/archive/documentation/General/Conceptual/WatchKitProgrammingGuide/InterfaceStyles.html#//apple_ref/doc/uid/TP40014969-CH12-SW1
"Вы можете изменить набор страниц, которые хотите отображать, вызвав метод reloadRootControllersWithNames: contexts: и передав массив идентификаторов для контроллеров интерфейса, определенных в вашей раскадровке.Например, вы можете вызвать этот метод в методе init контроллера основного интерфейса, чтобы заставить watchOS загрузить другой набор страниц. "
Я создал очень простое тестовое приложение и могу воспроизвести проблему здесь.Мой интерфейс имеет только ярлык, и мне нужно показать 2 страницы.Поэтому я использую reloadRootPageControllersWithNames
.Это reloadRootPageControllersWithNames
, кажется, вызывает проблему, но это настолько просто, что я не могу указать, что не так.
Вот мой очень простой код для InterfaceController:
- (void)awakeWithContext:(id)context {
[super awakeWithContext:context];
if (!context) {
NSLog(@"Watch data exists!");
[WKInterfaceController reloadRootPageControllersWithNames:@[@"myvc",@"myvc"] contexts:@[@0,@1] orientation:WKPageOrientationHorizontal pageIndex:1];
}
else {
NSLog(@"Title: %@",context);
[self.myTitle setText:context];
}
}