Контекст показывает ноль при попытке отправить данные через контроллеры интерфейса в WatchKit

У меня есть два интерфейса контроллеров с FirstInterfaceController, где у меня есть объект контекста, который я хочу отправить в SecondInterfaceController. Мне интересно, почему контекст отображается как ноль, когда я ожидаю, что это будет 0, когда я нажимаю кнопку действие.

Метаданные определяются следующим образом:

class Metadata {
    var x = 0

    init (x_parameter: Int) {
        x = x_parameter
    }    
}

Вот мое определение FirstInterfaceController:

class FirstInterfaceController: WKInterfaceController {

    var metadata = Metadata(x: 1)

    @IBAction func buttonAction() {
        metadata.x = 0

        // Use pushControllerWithName for a push segue
        pushController(withName: "Ten Point Tiebreaker", context: metadata)
    }
}

Вот мой идентификатор для SecondInterfaceController

Вот определение SecondInterfaceController:

class SecondInterfaceController: WKInterfaceController {

    override func awake(withContext context: Any?) {
        super.awake(withContext: context)
        print("context: \(String(describing: context))")    // This prints nil

        // Configure interface objects here.
        if let metadata = context as? Metadata {
            print("x: \(metadata.x)")
        }
    }
}

1 ответ

Решение

Проблема, с которой я столкнулся, заключалась в том, что у меня также был пуш-переход, что вызывало некоторые проблемы. Я только что удалил push segue, и он работал нормально.

Другие вопросы по тегам