Tag: watchkit

通过Apple Watch更新应用程序内容的简单方法

当我按下AppleWatch应用程序上的button时,我无法find更新iPhone应用程序中的视图的简单方法。 我用NSUserDefaults Observer像这样试了一下: iPhone App ViewController(在ViewDidLoad()中): // Create and share access to an NSUserDefaults object. mySharedDefaults = NSUserDefaults(suiteName: "group.sharedTest") //Add Observer NSUserDefaults.standardUserDefaults().addObserver(self, forKeyPath: "test", options: NSKeyValueObservingOptions.New, context: nil) 在Watchkit Extensions InterfaceController中,我添加了一个带有这个代码的button的IBAction: mySharedDefaults!.setObject("testValue", forKey: "test") mySharedDefaults!.synchronize() 但是当我按下button,没有任何反应! 如果我在我的iPhone视图控制器中设置一个对象,它的工作,但不是如果它通过应用程序更新! 有人能帮我吗?

WatchKit reloadRootControllersWithNames导致错误,与pageController或推/popup后

我有一个基本的watchkit应用程序,加载了3个界面控制器的基于页面的导航。 这个效果很好,但是我希望触发一个操作来删除页面控件,并且基本上恢复到应用第一次加载时原来的InterfaceController。 // load page based control, with 3 views. this works ok [WKInterfaceController reloadRootControllersWithNames:@[@"pageController1",@"pageController2",@"pageController3"] contexts:@[@"data1",@"data2",@"data3"]]; // attempt to reload original interface controller, identified by storyboard id [WKInterfaceController reloadRootControllersWithNames:@[@"myInterfaceController"] contexts:@[@{}]]; 基于页面的导航删除,原始的导航加载后,一个短的微调。 然而,它无法正常工作,原来的行动导致这个错误。 Extension[6766:123665] *********** ERROR -[SPRemoteInterface _interfaceControllerClientIDForControllerID:] clientIdentifier for interfaceControllerID:(null) not found 有没有更好的方法来干净地重新加载原始的InterfaceController? 编辑,2/19 看来还有一些其他的操作也会导致这个错误。 例如,如果继续使用第二个InterfaceController然后popController来取回,则经常会出现错误。 它总是与第二次调用这个函数有关。 [WKInterfaceController reloadRootControllersWithNames: contexts:] EDIT2,3 / 18 如前所述,通过执行seguePush(popController),然后尝试reloadRootControllersWithNames,可以在100%的时间内重现这一点。 如果事先没有完成seguePush […]

为什么应用程序组不能在我的WatchKit扩展中工作?

我已经看到所有关于共享主机应用程序和附加应用程序之间的NSUserDefaults数据的其他职位,但我仍然无法正常工作。 以下是我所做的一切: 在Xcode的“function”选项卡上为扩展程序和主机应用程序启用应用程序组。 将组名称设置为“group.com.mycompany.foo”,并确认扩展程序和主机应用程序已添加到组中。 通过将“com.apple.security.application-groups”键设置为我的应用程序组名称,确认存在权利文件。 (对于它的价值,我也使用扩展和主机应用程序之间的共享钥匙串function,这是可行的 – 所以我不认为这是权利问题) 重新生成所有configuration文件。 事实上,我甚至撤销了所有的证书,并在设置应用程序组后重新创build了所有configuration文件。 而所有这一切,这个代码仍然无法正常工作: // in the host app NSUserDefaults *testDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.mycompany.foo"]; [testDefaults setObject:@"TEST" forKey:@"foo"]; [testDefaults synchronize]; 接着: // in the extension NSUserDefaults *testDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.mycompany.foo"]; NSLog(@"%@", [testDefaults objectForKey:@"foo"]); 这导致: (null) 当我查看Xcode首选项时,我注意到这些图标,没有一个具有“应用程序组”图标: 但正如我之前所说的,在设置应用程序组之后,我尽可能清除了我的钥匙串,证书和configuration文件。 所以,如果这实际上是问题,我如何将配额添加到configuration文件? 我错过了什么? 我是新鲜的想法。 帮帮我? 编辑 :访问组正在我的今天和Safari扩展,只是不在WatchKit扩展。 我不知道为什么,所有的构build设置似乎configuration相同的方式。 编辑2 :对于那些坚持我的能力没有正确设置,这里是一个截图:

用于Force Touch / Digital Crown的WatchKit API?

我非常高兴Apple Watch引入了新的用户互动function,其中包括Force Touch和Digital Crown。 但是,我无法在WatchKit API中find它们的提及。 有没有办法接收Force Touch / Digital Crown的事件? 是否有可能为事件定制处理程序?

Apple Watch:从基于页面的导航中呈现模态屏幕后,状态栏不可见

当我在基于页面的导航中从页面呈现模态屏幕时,整个屏幕向上移动,状态栏不再可见。 这是一个问题的gif: 我正在使用xCode 6.2版本。 这在xCode 6.2 Beta 4中没有发生。 我不确定这是一个模拟器问题还是实际上也会发生在真实的设备上。 有没有人有同样的问题? 有没有解决方法? 我向苹果报告了一个错误(20109240),它被标记为(19862945)的副本,并且这个错误仍然是开放的。 提前致谢

在Watch App中创buildWKInterfaceImage的进度圈

我正在尝试为我的应用的Apple Watch版本创build一个进度圈。 我知道我们不能使用UIViews(这将使事情变得如此简单!),所以我正在寻找替代品。 基本上,我想创build一个这样的原型: 我希望做的事情的方式是将背景图层添加为正常的WKInterfaceImage,然后将顶部的进度箭头/线添加为WKInterfaceImage,该WKInterfaceImage根据计算的百分比围绕圆圈旋转。 我有这样的基本计算百分比,我正在寻找的是一些帮助旋转箭头的math代码。 有谁知道这是否可能,如果有的话,谁能帮我一把吗? 我没有试图在应用程序运行时更新该圈子; 它只是需要更新时,手表应用程序启动对应的iOS版本。 谢谢!

在WatchKit中parsing查询

我在我的iPhone应用程序中做一个Parse查询,但我收到错误,试图在我的Watch应用程序中执行相同的Parse查询 。 这是我的iPhone应用程序中的查询: – (void)viewDidLoad { // GMT Date from Phone NSDate *gmtNow = [NSDate date]; NSLog(@"GMT Now: %@", gmtNow); // Query Parse PFQuery *query = [self queryForTable]; [query whereKey:@"dateGame" greaterThanOrEqualTo:gmtNow]; [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { if (!error) { NSMutableArray *localMatchup = [@[] mutableCopy]; for (PFObject *object in objects) { // Add objects to […]

从iOS打开WatchKit应用程序

我想直接从我的iPhone上打开WatchKit应用程序到前台(或者Glance,如果可能的话)。 我一直在玩,但没有成功。 也许有人find了一些解决方法?

Watchkit&Realm 0.92.3

Xcode 6.3和iOS10.10.3下新的Realm-DB(realm 0.92.3)的Swift集成基本上适用于iPhone(不适用于Apple Watch)。 Watchkit(即Apple-Watch)下的同一个领域框架的集成工作还没有完成。 RealmSwift.framework被集成(拖入)embedded式二进制文件,如下面的这个和这里所描述的。 看下面的截图: 使用模拟器运行Watchkit-App时,会发生以下错误: dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /Users/XXX/Library/Developer/CoreSimulator/Devices/3FE99-9-4C4C2/data/Containers/Bundle/Application/8B4-DF19F34-222973/MyApp.app/PlugIns/MyApp WatchKit Extension.appex/MyApp WatchKit Extension Reason: image not found (lldb) 还有什么问题呢? 主应用程序的框架searchpath被设置。 MyApp Watchkit扩展程序和MyApp Watchkit应用程序没有设置。 设置它们不会改变上述错误。 还有什么缺失?

调用ExtensionDelegate为复杂度创build/刷新数据

我所有的数据创build都在ExtensionDelegate.swift完成。 问题是ExtensionDelegate.swift不会在我的ComplicationController.swift函数getCurrentTimelineEntryForComplication之前被调用 。 有任何想法吗? 这里是我的代码和细节: 所以我的数组extEvnts在我的ComplicationController.swift是空的: func getCurrentTimelineEntryForComplication(complication: CLKComplication, withHandler handler: ((CLKComplicationTimelineEntry?) -> Void)) { let extEvnts = ExtensionDelegate.evnts } 因为我的ExtensionDelegate.swift还没有被调用,这是为数组创build的数据: class ExtensionDelegate: NSObject, WKExtensionDelegate, WCSessionDelegate { private let session = WCSession.defaultSession() var receivedData = Array<Dictionary<String, String>>() static var evnts = [Evnt]() func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) { if let tColorValue = […]