【发布时间】:2019-03-18 17:01:02
【问题描述】:
我正在创建我的第一个 WatchOS 应用作为 iOS 应用的伴侣。
手表应用程序需要能够显示一个宾果球,其号码是从手机发送的。因为我不能用 WatchOS 覆盖图像,所以我创建了 6 个 WKInterfaceControllers。一个是“主”控制器,另外 5 个每个都有一个独特的背景图像,这是一个正确颜色(蓝色、红色、灰色、绿色和黄色)的宾果球,然后我用球的字母和数字覆盖一个标签(即 B14)。我找不到动态操作单个 WKInterfaceController 的背景图像的方法-但如果有办法这样做-我将非常感谢有关如何执行此操作的提示,并且我的其他问题将不存在。
目前,我正在使用主控制器中的 WatchConnectivity 来接收来自手机的更新。当手机发送一个号码时,代码会确定它需要的颜色,然后下面的代码会为 WKInterfaceController 提供正确的颜色背景:
let nextName = "\(ballColor)Controller"
DispatchQueue.main.async {
self.presentController(withName: nextName, context: message)
WKInterfaceDevice().play(.click)
}
我遇到的问题是,一旦我激活了第一个颜色控制器,我就无法在不关闭当前活动的控制器的情况下激活其他颜色控制器。
那么 - 我该怎么做呢?我想我只需要一种方法来保存对活动控制器的引用,这样我就可以在为下一个球激活控制器之前关闭它 - 但我不知道该怎么做。
如果有人能帮我指出正确的方向,我将不胜感激......
提前致谢
【问题讨论】:
-
嗨,吉姆,我认为,您只能使用单个界面控制器来管理您的需求,您可以根据需要在运行时更新背景颜色或图像,这样做您不需要关闭当前的接口控制器并显示新的。希望这会有所帮助。
标签: swift watchkit apple-watch wkinterfacecontroller