In the current state of the Apple Watch extension:
You can exchange information between the main iOS application and the WatchKit extension. Use application groups and NSUserDefaults to access shared information objects.
You cannot execute code from an iOS application that launches from actions on the Apple Watch.
At least not yet.
EDIT: Starting with Xcode 6.2 Beta 2
You can now chat with the parent watch iOS app from Apple Watch.
In WatchKit Extension, call the parent application through openParentAppentApplicion . You can pass the value dictionary to the parent application, and the parent application can return the value dictionary.
Watchkit Extension:
// Call the parent application from Apple Watch // values to pass let parentValues = [ "value1" : "Test 1", "value2" : "Test 2" ] WKInterfaceController.openParentApplication(parentValues, reply: { (replyValues, error) -> Void in println(replyValues["retVal1"]) println(replyVaiues["retVal2"]) })
IOS app:
// in AppDelegate.swift func application(application: UIApplication!, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]!, reply: (([NSObject : AnyObject]!) -> Void)!) { // retrieved parameters from Apple Watch println(userInfo["value1"]) println(userInfo["value2"]) // pass back values to Apple Watch var retValues = Dictionary<String,String>() retValues["retVal1"] = "return Test 1" retValues["retVal2"] = "return Test 2" reply(retValues) }
zisoft
source share