我试图给我的应用程序增加一个手表套件 - 部分是因为我觉得它有点酷,部分原因是因为我认为我在同一时间快速进行了猛烈抨击。麻烦的是,它不起作用!
我已经在Watchkit App中设置了我的UI故事板(只是一个简单的图像和标签,只是为了证明它有效),并且我在WatchKit扩展中编写了一些Swift代码 - 这个:
InterfaceController.swift
import WatchKit
import Foundation
//import JourneyKit
class InterfaceController: WKInterfaceController {
@IBOutlet weak var favouriteJourneyTable: WKInterfaceTable!
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
// Configure interface objects here.
WKInterfaceController.openParentApplication(["request": "refreshFavourites"],
reply: { (replyInfo, error) -> Void in
// TODO: process reply data
NSLog("Reply: \(replyInfo)")
})
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
}
我已将favouriteJourneyTable连接到我的WatchUI中的表格。
为了使问题复杂化,我确实有一个通知场景 - 因为我的应用程序需要它。我一直小心翼翼地确保我运行的是我的Watchkit应用程序,而不是我的通知。然而,当我运行我的应用程序时,UI无法显示。我只是得到一个黑色的屏幕,时间在角落里。
我知道这个代码被调用了,因为在控制台中,我得到以下内容:
2015-04-05 18:30:22.599 Testapp WatchKit Extension[1151:197034] Reply: nil
其中,以它自己的方式,令人沮丧 - 因为AppDelegate包含响应的代码(更不用说断点)并且它显然没有被调用。
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply{
// Performs task on phone here
// Sending back a reply
if ([[userInfo valueForKey:@"request"] length]>0) {
//NSMutableDictionary *reply = [[NSMutableDictionary alloc] init];
[reply setValue:[NSString stringWithFormat:@"Hello from %@", [userInfo valueForKey:@"SiteName"]] forKey:@"Message"];
}
}
UI问题目前最受关注,其次是AppDelegate问题。我需要找到一些方法将我的数组从我的iOS首选项中取出并放到我的WatchApp屏幕上。有什么想法吗?
评论出WKInterfaceController.openParentApplication ...(只是试图让UI显示(抓住吸管)没有任何区别。
答案 0 :(得分:0)
你知道编程时你需要的东西是棕色纸袋吗?就是这个。我羞愧地提供了以下解决方案(摆弄了独立的测试工具,并且使用了Stack Overflow)。这很简单,很明显,而且我很尴尬: - (
从图像构建UI时,确实需要在生成目标时包含这些图像。 D'哦。无论如何,你可以在这里阅读更多:Apple Watch Images not showing on simulator
我为浪费每个人的时间而道歉!