Watchkit Swift中的presentControllerWithName问题

时间:2015-04-04 07:36:42

标签: swift watchkit

我的问题: 我创建了一个带有Tableview的AppleWatch APP。 通过点击特殊的行,我想切换到DetailController

所以在我的didSelectRowAtIndex Methode中我使用switch-case函数来查找我想要显示详细信息的行

override func table(table: WKInterfaceTable, didSelectRowAtIndex rowIndex: Int) {    
    switch(status) {
    case "on":
        Println()
    case "off":
        Println()
    case "value":
        self.presentControllerWithName("MyValue", context: "TheValue")
}

在我的DetailViewController中,我只想在标签中显示值。 所以我这样做了:

@IBOutlet var label: WKInterfaceLabel!

override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)
       var TheValue = context as? String
    label.setText(TheValue)
    // Configure interface objects here.
}

现在是行为:如果没有Outlet,则显示DetailViewController,但是Outlet只运行了Activity Indikator,没有任何反应!

我的错误在哪里?

1 个答案:

答案 0 :(得分:-1)

嗯,首先:不要这样做。通过故事板将表格中的segue连接到下一个Controller,而不是在代码中推送或显示它。然后你只需要设置下一个控制器的上下文,如下所示:

override func contextForSegueWithIdentifier(segueIdentifier: String, inTable table: WKInterfaceTable, rowIndex: Int) -> AnyObject? {
    if models.count > rowIndex {
        return models[rowIndex]
    }
    return nil
}

第二:你是否正确地将标签插座连接到故事板?显示您的故事板的更多代码和屏幕截图。或者,更好的是,将项目上传到github并显示它。