Watchkit没有调用willActivate方法

在Watchkit的所有测试版中,我能够无缝地运行我的手表应用程序,但是在过去一周(8.2)的最近版本中,我的willActivate方法几乎没有被调用过。 发生了什么是awakeWithContext被调用,手表停止与旋转器永远旋转。 这个问题发生在任何人身上吗?

我发现通过键入Command-L锁定和解锁设备(模拟器)将导致调用willActivate方法。 我希望你不必在真正的Apple Watch上这样做。

昨天刚遇到同样的问题。

在我的情况下,我正在使用页面导航,并且调用初始视图控制器的awakeWithContext ,但是永远不会调用willActivate

经过一番挖掘后,我发现当使用页面导航时, ALL页面awakeWithContext将在启动时和初始页面之前willActivate 。 如果其中一个页面awakeWithContext方法被卡住,则永远不会调用初始页面的willActivate方法。

您可能需要检查其他视图控制器的awakeWithContext方法,以查看它们是否卡住了。

所以,我仍然不认为我确切知道发生了什么或导致了什么,但我有完全相同的问题,我做了一些调查并得到了一些结果,所以我希望这有助于我们缩小范围。 我已经确定它与进入我的初始控制器的布局的复杂性有关。 如果我为初始控制器更改为更简单的布局,或者如果我从初始控制器中删除“足够的东西”,那么我就不再获得死亡的旋转轮。 (当然这也打破了我的应用程序的逻辑)。 我的布局有点复杂,但并不复杂; 有嵌套4层深的组,大约20个UI元素(包括组本身),有4个按钮和4个标签。 它似乎在测试版中运行良好。 并没有明确的押韵或理由; 某些布局组合似乎会导致它,有些则不然。 这是确定性的; 如果给定的布局在加载时旋转,它将始终在加载时旋转,如果没有,则不会。 当它旋转时,我永远不会得到意志激活。 如果没有,我会这样做。 它似乎与awakeFromContext的内容没有任何关系: 我可以删除该方法中的所有内容,但没有帮助。 它也与资产,编译器设置等无关。除此之外,我还没有想到它。 如果有人对此有任何见解,我很乐意听到。