Watchkit не вызывает метод willActivate

На протяжении всех бета-версий Watchkit я смог без труда запустить приложение для просмотра часов, но с недавним выпуском на прошлой неделе (8.2) мой метод willActivate почти никогда не называется. Что происходит, так это awakeWithContext вызывается, а часовые стойки с вращающимся вращающимся веточкой. С кем эта проблема?

Я обнаружил, что блокировка и разблокировка устройства (симулятора) путем ввода команды -L приведет к вызову метода willActivate. Надеюсь, вам не обязательно делать это на настоящем Apple Watch.

Вчера я столкнулся с той же проблемой.

В моем случае я использую навигацию по страницам, и awakeWithContext вызов willActivate начального контроллера awakeWithContext , но willActivate никогда не вызывается.

После некоторого рытья я узнал, что при использовании навигации по страницам ALL страницы awakeWithContext будут вызываться во время запуска и до того, как будет willActivate начальная страница. Если одна из страниц awakeWithContext метода застревает, метод willActivate начальной страницы никогда не будет вызван.

Возможно, вам придется проверить методы awakeWithContext другого контроллера просмотра, чтобы убедиться, что они застряли.

Итак, я все еще не думаю, что я точно знаю, что происходит или что вызывает его, но у меня такая же проблема, и я провел некоторое расследование и получил некоторые результаты, поэтому я надеюсь, что это поможет нам сузить это , Я определил, что это имеет какое-то отношение к сложности макета, который входит в мой первоначальный контроллер. Если я перейду на более простой макет для моего первоначального контроллера, или если я удалю «достаточное количество вещей» с моего начального контроллера, то я больше не получаю вращающееся колесо смерти. (Конечно, это также нарушает логику моего приложения). Мой макет немного сложный, но не такой сложный; есть группы, вложенные в 4 слоя, и около 20 общих элементов пользовательского интерфейса (включая сами группы) с четырьмя кнопками и 4 ярлыками. В бета-версии он отлично работал. И нет четкой рифмы или причины; некоторые комбинации макетов, похоже, вызывают это, другие – нет. Он детерминирован; если данный макет вращается при загрузке, он всегда будет вращаться на нагрузке, а если нет, то этого не происходит. Когда он вращается, я никогда не получаю willActivate. Когда это не так, я делаю. Кажется, что это не имеет никакого отношения к содержимому awakeFromContext :. Я могу удалить все из этого метода, и это не поможет. Он также не имеет ничего общего с активами, настройками компилятора и т. Д. И т. Д. Кроме этого, я еще не понял этого. Если у кого-то есть понимание этого, я бы хотел его услышать.

Interesting Posts
Давайте будем гением компьютера.