是否可以通过Watch代码在iPhone应用程序中触发segue?我一直在研究OS2,它说在两个应用程序都处于 Activity 状态时可以传输数据,但想知道是否可以从Watch代码中调用iPhone应用程序中的代码。
最佳答案
您不能将segue从WatchApp(子应用程序)推送到iPhone App(父应用程序),但可以肯定地将数据从WatchApp发送到iPhone,并根据该数据可以在iPhone Application上执行segue。
要将更新从Apple Watch发送到iPhone App,您必须在openParentApplication
中实现WatchKit Extension
。
class func openParentApplication(userInfo: [NSObject : AnyObject], reply: (([NSObject : AnyObject], NSError?) -> Void)?) -> Bool
创建
NSDictionary
并使用以下代码传递该数据:func updateInformationToParentApp(emergencyInfo : [NSObject : AnyObject]!){
// Call the parent application from Apple Watch
WKInterfaceController.openParentApplication(emergencyInfo) { (returnUpdate, error) -> Void in
if((error) == nil){
print("Data send successfully");
} else {
print("Error : \(error?.localizedDescription)");
}
}
}
在
AppDelegate
中实现以下方法以处理WatchApp更新。func application(application: UIApplication, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]?, reply: ([NSObject : AnyObject]?) -> Void){
NSLog("Handler Apple Watch Event ");
watchEvent(userInfo, reply: reply);
}
func watchEvent(userInfo: [NSObject : AnyObject]!, reply: (([NSObject : AnyObject]!) ->Void)!) {
let dic = userInfo as NSDictionary;
NSLog("dic %@", dic);
// retrieved parameters from Apple Watch
print(userInfo["Key"])
//Perform Segue from Here according to Dictionary Info
//Pass back values to Apple Watch
var returnUpdate = Dictionary<String,AnyObject>()
let watchAppMessage = "Meesage Back To Apple Watch" as NSString;
returnUpdate["message"] = NSKeyedArchiver.archivedDataWithRootObject(watchAppMessage);
reply(returnUpdate)
}
关于ios - 从iPhone的Watch触发搜寻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35287800/