Swift 观看。将数据从一个视图控制器发送到另一个

Swift watch. Sending data from one view controller to another

我正在尝试将 Data class 对象的实例从我的 ViewController 发送到 DataViewControllerSwift。

ViewController

var data : Data = Data()

data = dataList?.objectAtIndex(rowIndex) as Data
var dataViewController : DataViewControllerSwift?

dataViewController!.data = data
self.pushControllerWithName("DataaaViewControllerSwift", context: nil)

数据ViewController斯威夫特

 class DataViewControllerSwift: WKInterfaceController {
 var data : Data! = Data()
 }

但是我的 DataViewControllerSwift 中的数据实例为零。我有点困惑,不知道为什么会这样。

我厌倦了这个

 var dataViewController : DataViewControllerSwift? = DataViewControllerSwift()

然而我只得到一个错误。

这并不是在 WatchKit 中的控制器之间传递数据的好方法。

首先,在您的 ViewController 中,您应该

var data = dataList?.objectAtIndex(rowIndex) as Data
self.pushControllerWithName("DataViewControllerSwift", context: data)

以便您可以通过 context

将数据从 ViewController 传递到 DataViewController

其次,在您的 DataViewControlleroverride func awakeWithContext(context: AnyObject?) 方法中,您可以执行以下操作以获取从 ViewController 传递的数据:

if let theData = context as? Data {
   self.data = theData
}