【问题标题】:Watchkit not calling willActivate methodWatchkit 没有调用 willActivate 方法
【发布时间】:2015-03-16 17:56:25
【问题描述】:

在 Watchkit 的所有 beta 版本中,我都能无缝运行我的手表应用程序,但在上周最近发布的版本 (8.2) 中,我的 willActivate 方法几乎没有被调用过。发生的事情是 awakeWithContext 被调用,并且手表随着微调器永远旋转而停止。有人遇到过这个问题吗?

【问题讨论】:

  • 你在awakeWithContext做什么?你能发布你的代码吗?

标签: ios watchkit


【解决方案1】:

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

【讨论】:

  • 我刚刚发现了同样的问题。你知道这个错误是否仍然出现在真实设备上吗?
【解决方案2】:

昨天刚遇到同样的问题。

在我的例子中,我使用的是页面导航,初始视图控制器的 awakeWithContext 被调用,但 willActivate 从未被调用。

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2012-03-13
      • 2012-08-25
      • 2015-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多