1
我正在開發我的第一個Apple Watch應用程序(對我的iOS應用程序的擴展)。我在將數據從一個WKInterfaceController發送到另一個時遇到了一個小問題。Swift WatchConnectivity應用程序上下文作爲字典
我的第一個控制器(InterfaceController.swift)有didReceiveMessage
它從哪裏接收來自我的iOS應用程序的數據。
func session(_ session: WCSession, didReceiveMessage message: [String : Any]) {
let myQrValue = message["qrCode"] as! String
let myQrImage = message["qrCodeImageData"] as! Data
var myData: [AnyHashable: Any] = ["myQrValue": myQrValue, "myQrImage": myQrImage]
if myQrValue.isEmpty == false {
WKInterfaceController.reloadRootControllers(withNames: ["QrScreen"], contexts: [myData])
}
}
我
第二個控制器(QrInterfaceController.swift),我有以下來從第一控制器發送的數據
然後 -
override func awake(withContext context: Any?) {
super.awake(withContext: context)
print("context \(context)")
if let myData = context {
print("myData \(myData)")
// userQrNumber.setText(myData)
}
if let myQrImage = myQrImage {
userQrImage.setImageData(myQrImage)
}
if let myQrLabel = myQrLabel {
userQrNumber.setText(myQrLabel)
}
self.setTitle("")
}
我卡住(可以是簡單/愚蠢的問題)如何解析我的數據從第二控制器的上下文?
另外,didReceiveMessage只在第二次啓動我的ViewController時放置了sendMessage代碼。這是正常的嗎?
你可能不相信,我只是試了一樣。你的回答向我證實我做得對!謝謝。 –
爲什麼didReceiveMessage只能從第二次工作的任何想法? –