Reputation: 1147
I am trying to send an instance of Data class object from my ViewController to DataViewControllerSwift.
ViewController
var data : Data = Data()
data = dataList?.objectAtIndex(rowIndex) as Data
var dataViewController : DataViewControllerSwift?
dataViewController!.data = data
self.pushControllerWithName("DataaaViewControllerSwift", context: nil)
DataViewControllerSwift
class DataViewControllerSwift: WKInterfaceController {
var data : Data! = Data()
}
However data instance is nil in my DataViewControllerSwift. I am little confuse and don't know why this is happening.
I tired this
var dataViewController : DataViewControllerSwift? = DataViewControllerSwift()
however I only got an error.
Upvotes: 1
Views: 1125
Reputation: 6931
Thats not really a good way to pass data between controllers in WatchKit.
First, in your ViewController
, you should do
var data = dataList?.objectAtIndex(rowIndex) as Data
self.pushControllerWithName("DataViewControllerSwift", context: data)
So that you can pass the data from your ViewController
to DataViewController
via context
Second, in your DataViewController
's override func awakeWithContext(context: AnyObject?)
method, you can do the following to get the data passed from ViewController
:
if let theData = context as? Data {
self.data = theData
}
Upvotes: 1