我的WatchKit应用程序不显示其UI

时间:2015-04-05 17:45:22

标签: cocoa-touch swift watchkit

我试图给我的应用程序增加一个手表套件 - 部分是因为我觉得它有点酷,部分原因是因为我认为我在同一时间快速进行了猛烈抨击。麻烦的是,它不起作用!

我已经在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显示(抓住吸管)没有任何区别。

1 个答案:

答案 0 :(得分:0)

你知道编程时你需要的东西是棕色纸袋吗?就是这个。我羞愧地提供了以下解决方案(摆弄了独立的测试工具,并且使用了Stack Overflow)。这很简单,很明显,而且我很尴尬: - (

从图像构建UI时,确实需要在生成目标时包含这些图像。 D'哦。无论如何,你可以在这里阅读更多:Apple Watch Images not showing on simulator

我为浪费每个人的时间而道歉!