在尝试通过WatchKit中的接口控制器发送数据时显示nil的上下文

时间:2017-07-07 04:57:59

标签: swift segue watchkit wkinterfacecontroller

我有两个接口控制器,其中FirstInterfaceController是我想要发送给SecondInterfaceController的上下文对象的接口控制器。我想知道当我点击buttonAction时,当我预期上下文为0时,为什么上下文显示为nil。

元数据定义如下:

class Metadata {
    var x = 0

    init (x_parameter: Int) {
        x = x_parameter
    }    
}

这是我对FirstInterfaceController的定义:

class FirstInterfaceController: WKInterfaceController {

    var metadata = Metadata(x: 1)

    @IBAction func buttonAction() {
        metadata.x = 0

        // Use pushControllerWithName for a push segue
        pushController(withName: "Ten Point Tiebreaker", context: metadata)
    }
}

这是SecondInterfaceController的标识符 enter image description here

这是SecondInterfaceController的定义:

class SecondInterfaceController: WKInterfaceController {

    override func awake(withContext context: Any?) {
        super.awake(withContext: context)
        print("context: \(String(describing: context))")    // This prints nil

        // Configure interface objects here.
        if let metadata = context as? Metadata {
            print("x: \(metadata.x)")
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我遇到的问题是我还有一个Push segue,因此导致了一些问题。我刚刚删除了Push segue,它工作正常。