2017-09-24 99 views
0

我有一个watchkit应用程序,通过设置如何把数字树冠回来watchOS工作4

crownSequencer.delegate = self 
crownSequencer.focus() 

在这种各执行我的接口控制器在唤醒方法利用了数字冠:

class InterfaceController: WKInterfaceController, WKCrownDelegate 

在watchOS 3我的委托方法执行就好了:

// called when the crown rotates, rotationalDelta is the change since the last call (sign indicates direction). 
func crownDidRotate(_ crownSequencer: WKCrownSequencer?, rotationalDelta: Double) { 

    // do something important here... 
} 

升级到watchos4后,此功能会中断。 一个简单的重新编译和转换为swift 4没有帮助。

回答

2

我可以通过简单的crownSequencer代码移动到我的接口控制器的willActivate方法解决这个问题:

override func willActivate() { 
    ... 

    crownSequencer.delegate = self 
    crownSequencer.focus() 
} 

看来我的东西抢断watchOS 4(或许真的涉及到spritekit焦点我正在使用?),如果你把焦点放得太早。

希望这可以为别人节省一些时间!

+0

任何想法如何复制这个问题? 我的应用程序在90%的时间内工作,然后在应用程序启动时沿着轨道某处停止,它停止检测旋转。我想在修复之前持续复制它,所以我知道它是固定的。想知道触发是什么。 也想知道如果didAppear将是一个更好的地方。目前我在清醒()。 – TPot

+0

是的 - didAppear绝对更好,因为willAppear不会被称为时间。但即使在那里,我也注意到与你所描述的相同:在10%的情况下,它仍然停止工作: - / – Dirk