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只能从第二次工作的任何想法? –