Передача данных из interface controller'ов (WatchKit)

В общем, пишу свое первое приложение для часов. Имеется основной контроллер и дополнительный, на котором расположен table для выбора системы счисления. Переход ко второму осуществляется по кнопке на основном. Вот класс доп. контроллера: `class TableInterfaceController: WKInterfaceController {

@IBOutlet var table: WKInterfaceTable!

let systems = ["2", "8", "10", "16"]

override func awake(withContext context: Any?) {
    super.awake(withContext: context)
    
    table.setNumberOfRows(systems.count, withRowType: "Row")
    
    for (index, system) in systems.enumerated() {
        guard let row = table.rowController(at: index) as? SystemsRow else {continue}
        row.systemsLabel.setText(system)
    }`

Table работает, все норм. Вопрос в том, как сделать, чтобы при выборе того или иного варианта из доп. контроллера производился переход на основной, причем тексту на кнопке (на основном) присваивалась выбранная система. Читал документацию Эппла, нашел contextForSegue(), но чет не понял как её применить.


Ответы (1 шт):

Автор решения: ivanvorobei

По нажатию в методе didSelectRow вызываете:

pushController(withName: ID, context: contex)

Contex это любая структура. Модель. Делайте как удобно вам, например поле с массивом данных.

Во втором контроллере переопределяете метод:

override func awake(withContext context: Any?) {
        super.awake(withContext: context)

   // получате объект
   guard let context = context as? YourContexClass else { return }

}

Далее конфигурируете таблицу согласно ваших данных.

→ Ссылка