Получить ссылку WKInterfaceController при нажатии interfaceController

У меня есть контроллер панели мониторинга в часах Apple, и я перехожу к следующему WKInterfaceController без использования Segue.

pushControllerWithName("Messages_Detail",context: ["Data": messageDetailData])

Теперь мне нужно передать данные из Dashboard в Messages_Detail позже, после их загрузки. У меня нет ссылки на это в Dashboard. Как передать ему данные?


person Hassy    schedule 20.11.2015    source источник


Ответы (1)


Здесь у вас есть обычная задача передачи данных между контроллерами, и, вообще говоря, это не специфичная для Watch задача. На самом деле вам нужно отправить данные обратно (с отправкой данных вперед у вас уже все в порядке). Я вижу 2 пути решения вашей задачи в зависимости от текущей реализации:

  1. Используйте контроллер Messages_Detail в качестве делегата контроллера Dashboard. Вы также должны определить некоторый протокол, который будет описывать, какие методы Messages_Detail доступны для вызова в контексте делегата.
  2. Используйте NSNotificationCenter или любую другую реализацию шаблона Pub/Sub, чтобы обеспечить связь между различными частями вашего приложения. В этом случае ваш Dashboard будет публиковать уведомления, которые будет отслеживать контроллер Messages_Detail.
person Dmytro Hutsuliak    schedule 20.11.2015
comment
Я попытался использовать первый подход, и я убедился, что он работает нормально, большое спасибо - person Hassy; 20.11.2015