Я создаю приложение для iPhone (с представлением)/часы (с интерфейсом), которое отображает скорость, расстояние и таймер с функциями «Воспроизведение/Пауза», «Стоп» и «Очистить».
Раньше я делился данными контекста приложения WatchConnectivity между (отправка и получение контекста). Все работает пока что, но я бы добавил еще страницу/интерфейсы на которых обменивается Watch the Context с айфоном а там вообще не знаю как.
Если я включу интерфейсы сеанса 2, информация будет потеряна
Вот мой текущий код, я хочу переключить отображение меток TimeLabel, DistanceLabel Label и скорость на втором интерфейсе
//
// InterfaceController.m
// Watch Extension
//
// Created by Arnaud Roy on 25/10/2015.
// Copyright © 2015 Burotica. All rights reserved.
//
#import "InterfaceController.h"
#import <WatchConnectivity/WatchConnectivity.h>
@interface InterfaceController() <WCSessionDelegate>
@property (strong, nonatomic) WCSession *session;
@property (unsafe_unretained, nonatomic) IBOutlet WKInterfaceButton *startLabel;
@property (unsafe_unretained, nonatomic) IBOutlet WKInterfaceLabel *timeLabel;
@property (unsafe_unretained, nonatomic) IBOutlet WKInterfaceLabel *distanceLabel;
@property (unsafe_unretained, nonatomic) IBOutlet WKInterfaceLabel *vitesseLabel;
@property (nonatomic,assign) BOOL running;
@end
@implementation InterfaceController
- (void)awakeWithContext:(id)context {
[super awakeWithContext:context];
// Configure interface objects here.
}
- (void)willActivate {
// This method is called when watch view controller is about to be visible to user
[super willActivate];
if ([WCSession isSupported]) {
WCSession *session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
//NSLog(@"SESSION AVAIBLE");
}
//Objective-C
if ([[WCSession defaultSession] isReachable]) {
//NSLog(@"SESSION REACHABLE");
}
self.running = false;
}
- (void)didDeactivate {
// This method is called when watch view controller is no longer visible
[super didDeactivate];
}
- (IBAction)startButton {
if(self.running == false) {
[self sendCmd:@"start"];
[self.startLabel setTitle:[NSString stringWithFormat:@"PAUSE"]];
self.running = true;
}
else
{
[self sendCmd:@"pause"];
[self.startLabel setTitle:[NSString stringWithFormat:@"PLAY"]];
self.running = false;
}
}
- (IBAction)clearButton {
[self sendCmd:@"clear"];
}
- (IBAction)plusmoinsButton {
[self sendCmd:@"plusmoins"];
}
- (IBAction)stopButton {
[self sendCmd:@"stop"];
}
-(void)sendCmd:(NSString*) cmdSendW{
WCSession *session = [WCSession defaultSession];
NSError *error;
[session updateApplicationContext:@{@"cmdSendW":cmdSendW} error:&error];
}
- (void)session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary<NSString *,id> *)applicationContext {
NSString *cmdSend = [applicationContext objectForKey:@"cmdSend"];
NSString *timeSend = [applicationContext objectForKey:@"timeSend"];
NSString *distanceSend = [applicationContext objectForKey:@"distanceSend"];
NSString *partielSend = [applicationContext objectForKey:@"partielSend"];
NSString *vitesseSend = [applicationContext objectForKey:@"vitesseSend"];
dispatch_async(dispatch_get_main_queue(), ^{
if([cmdSend isEqual: @"start"])
{
[self.startLabel setTitle:[NSString stringWithFormat:@"PAUSE"]];
[self.timeLabel setText:[NSString stringWithFormat:@"Time : %@", timeSend]];
[self.distanceLabel setText:[NSString stringWithFormat:@"Distance : %@", distanceSend]];
[self.vitesseLabel setText:[NSString stringWithFormat:@"Vitesse : %@", vitesseSend]];
self.running = true;
}
else if([cmdSend isEqual: @"pause"])
{
[self.startLabel setTitle:[NSString stringWithFormat:@"PLAY"]];
[self.timeLabel setText:[NSString stringWithFormat:@"Time : %@", timeSend]];
[self.distanceLabel setText:[NSString stringWithFormat:@"Distance : %@", distanceSend]];
[self.vitesseLabel setText:[NSString stringWithFormat:@"Vitesse : %@", vitesseSend]];
self.running = false;
}
else if([cmdSend isEqual: @"stop"])
{
[self.startLabel setTitle:[NSString stringWithFormat:@"PLAY"]];
[self.timeLabel setText:[NSString stringWithFormat:@"Time : %@", timeSend]];
[self.distanceLabel setText:[NSString stringWithFormat:@"Distance : %@", distanceSend]];
[self.vitesseLabel setText:[NSString stringWithFormat:@"Vitesse : %@", vitesseSend]];
self.running = false;
}
});
}
@end
Спасибо за вашу помощь