尝试跨 WatchKit 中的接口控制器发送数据时上下文显示为 nil
context showing nil when trying to send data across Interface Controllers in WatchKit
我有两个接口控制器,其中 FirstInterfaceController 是我有一个要发送到 SecondInterfaceController 的上下文对象的控制器。我想知道为什么当我点击 buttonAction 时上下文显示为 nil 而我希望它显示为 0。
元数据定义如下:
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 标识符
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)")
}
}
}
我遇到的问题是我也有一个 Push segue,所以这导致了一些问题。我刚刚删除了 Push segue,它工作正常。
我有两个接口控制器,其中 FirstInterfaceController 是我有一个要发送到 SecondInterfaceController 的上下文对象的控制器。我想知道为什么当我点击 buttonAction 时上下文显示为 nil 而我希望它显示为 0。
元数据定义如下:
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 标识符
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)")
}
}
}
我遇到的问题是我也有一个 Push segue,所以这导致了一些问题。我刚刚删除了 Push segue,它工作正常。