2017-09-24 95 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