Оба этих контроллера должны общаться друг с другом.
Есть несколько способов, но я бы пошел с общим объектом класса.
Думайте о контроллерах как о тупых представлениях, которые показывают только информацию иотправлять события взаимодействия (подумайте MVVM, но мы сейчас не берем этот шаблон).
Пусть реальная логика тренировки находится в объекте класса, который вы разделяете между двумя контроллерами.
Пример:
class WorkoutManager {
var workoutStarted: Bool = false
func startWorkout() {
workoutStarted = true
//...
}
func stopWorkout() {
workoutStarted = false
//...
}
}
Код, связанный с открытой группой:
//Common object to be sent to both controllers
let manager = WorkoutManager()
WKInterfaceController.reloadRootControllers(withNamesAndContexts:
[(name: "page1", context: manager as AnyObject),
(name: "page2", context: manager as AnyObject)])
В обоих контроллерах (очень важно):
var manager: WorkoutManager!
override func awake(withContext context: Any?) {
//...
self.manager = context as! WorkoutManager
//...
}
Код, связанный с Page 1:
if(manager.workoutStarted == false) {
manager.startWorkout()
}
else {
manager.stopWorkout()
}
Код, связанный со страницей 2:
func startworkOut() {
manager.startWorkout()
}
func stopworkOut() {
manager.stopWorkout()
}
Этот WorkoutManager
является просто идеей о том, как действовать.Он обязательно должен содержать другой контент, который вы хотите показать, например частоту сердечных сокращений и расстояние.
Удачи