Как исправить отсутствующий контроллер интерфейса внутри Page Controller в Apple Watch?

Что я нашел?

Попробуйте выполнить горизонтальную прокрутку между контроллерами интерфейса внутри контроллера корневой страницы.

  1. Случайно через некоторое время (30-1 мин).

  2. Вы обнаружите, что один из контроллеров интерфейса отсутствует.

  3. Отображается пустой вид, пользовательский интерфейс полностью исчезает. (Черный вид без интерфейса).

  4. Попробуйте открыть отладчик представления в XCode, вы обнаружите, что окно интерфейса представления отсутствует в иерархии контроллера представления страницы.

Воспроизвести

  • Создайте новое приложение.

  • Создайте новое приложение для часов

  • Добавлено 2 дополнительных контроллера интерфейса в раскадровки.

  • Добавить идентификатор для обоих

  • Внутри начального вызова контроллера интерфейса

WKInterfaceController.reloadRootPageControllers(withNames: ["View1","View2"], contexts: ["View1","View2"], orientation: .horizontal, pageIndex: 1)

  • Запустите приложение на Watch OS 6 Series 3 (симулятор или устройство A).
  • Попробуйте прокрутить в случайном порядке

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


person Ahmed Fahmy    schedule 28.10.2019    source источник
comment
Боюсь, решения нет, но я также видел это в недавних изменениях в моем приложении для часов. Произошло только после того, как я добавил третий контроллер представления и переключился на SwiftUI — понятия не имею, связаны ли они   -  person John Pollard    schedule 29.10.2019
comment
Ненаучно я не видел этого со вчерашнего обновления до WatchOS 6.1, так что, надеюсь, исправлено ????   -  person John Pollard    schedule 30.10.2019
comment
Спасибо за ваш комментарий, я подтвердил, что он отлично работает с WatchOS 5. Проблема явно связана с ошибкой в ​​​​WatchOS 6. Обновление для WatchOS 6.1 сейчас.   -  person Ahmed Fahmy    schedule 30.10.2019
comment
Я обновился до WatchOS 6.1, и это решило проблему, а также заметил, что ту же проблему можно легко воспроизвести в собственных примерах документации Apple.   -  person Ahmed Fahmy    schedule 04.11.2019
comment
Я все еще испытываю это с watchOS 6.1.   -  person BartoszCichecki    schedule 10.12.2019
comment
Я тоже с таким сталкиваюсь. Пробовал watchOS 5.0, 6.0 и 6.1. В какой-то момент сцены начинают исчезать.   -  person programmist    schedule 16.12.2019


Ответы (1)


У меня была такая же проблема, и это было связано с вызовом crownSequencer.focus() без соответствующего вызова crownSequencer.resignFocus(). В моем случае я звонил focus() в didAppear(), и как только я добавил вызов resignFocus() в willDisappear(), проблема исчезла.

Аналогичный вопрос здесь: Страница черного экрана в приложениях Apple Watch с более чем одной страницей

person user899076    schedule 16.04.2020