私の iOS アプリケーションでは、 Core Data を使用してデータを保存し、フェッチ要求を使用して の配列を作成し、NSManagedObjectに表示しますUITableView。
Watch OS でWCSession、セッションがサポートされていてアクティブかどうかを確認し、watchOS 拡張機能から iOS アプリケーションにメッセージを送信します。
iOS アプリケーションが watchOS からメッセージを受信すると、 の配列をObjectswatchOS 拡張機能に送信して にデータを表示する必要がありますが、WKInterfaceTableこれを行う方法がわかりません。最終的に私が達成しようとしているのは;
の配列を
ObjectswatchOS拡張機能と共有するにはどうすればよいですか?ユーザーがウォッチの配列にオブジェクトを追加/編集/削除した場合、iPhone のデータを更新するにはどうすればよいですか?
また、iOS アプリケーションは に埋め込まれている
UITabBarControllerため、どのビュー コントローラと通信するかは重要ですか?
OS のお気に入りを監視するInterfaceController
var session : WCSession!
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
//Check if session is supported and Activate
if (WCSession.isSupported()) {
session = WCSession.defaultSession()
session.delegate = self
session.activateSession()
}
}
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
// Interface Objects
//Send Message
sendmessagetoiphone()
}
func sendMessageToIphone() {
if(WCSession.isSupported()){
session.sendMessage(["b":"goodBye"], replyHandler: nil, errorHandler: nil)
}
}
IOS アプリケーション: FavoritesViewController
var objects = [Objects]()
func loadData() {
let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
let request = NSFetchRequest(entityName: "Objects")
request.sortDescriptors = [NSSortDescriptor(key: "date", ascending: true)]
do {
try
self.objects = moc.executeFetchRequest(request) as! [Objects]
// success ...
} catch {
// failure
print("Fetch failed")
}
}
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
//handle received message
let value = message["Value"] as? String
dispatch_async(dispatch_get_main_queue()) {
self.messageLabel.text = value
}
//send a reply
replyHandler(["Value":"Hello Watch"])
}