按Apple Watch上的按钮时,更新iPhone上的标签

Azi*_*ode 1 watchkit

我正在构建一个应用程序来计算你有多少目标.

我想知道发送收集的数据的最佳方式是什么

Apple Watch to the iPhone(并在iPhone上显示)

大段引用

// Watchkit extension 

     var count = 1


  // a label
     @IBOutlet weak var goals: WKInterfaceLabel!

  // a button in the Apple Watch
     @IBAction func addCount() {

         goals.setText("\(count++)")
    }

  // IPhone View Controller
     @IBOutlet weak var yourTeamScore: UILabel!
Run Code Online (Sandbox Code Playgroud)
  • 我已经为扩展程序和Apple Watch设置了我的应用程序组.

  • 我应该使用NSUserDefaults将数据存储在扩展上,然后将其发送到iPhone应用程序(View Controller)吗?

  • 是否可以使用openParentApplication:回复以使用Apple Watch上收集的数据更新iPhone上的标签

Jav*_*ont 5

此链接可能对您有所帮助:

https://www.netfunctional.com/2015/04/watchkit-apps-sending-data-from-apple-watch-to-iphone/

基本上,当您单击按钮时,应该从watchkitextension调用此方法:

 [WKInterfaceController openParentApplication:yourDictionary reply:^(NSDictionary *replyInfo, NSError *error) {
        ....
    }];
Run Code Online (Sandbox Code Playgroud)

iPhone应用程序将调用:

- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *replyInfo))reply
{
   //Code to update the label
}
Run Code Online (Sandbox Code Playgroud)