Почему моя подписка на rx не сработает в моем onNext? - PullRequest
0 голосов
/ 08 января 2020

Играя с Rx Swift Я столкнулся с ситуацией, когда мой subscription не срабатывает.

У меня есть два viewControllers. Первый имеет label, который subscriber должен обновить, например:

func listen() {
   print("In func")
   let sec = storyboard?.instantiateViewController(withIdentifier: "secondvc") as! SecondViewController

   sec.myRx.subscribe(onNext: {
    print("SUBSCRIBED", $0)
       self.rxLabel.text = $0
   })
}

Если вы go до секунды viewController, есть кнопка, которая запускает событие onNext , Вот так:

    var myRx = PublishSubject<String>()

    @IBAction func myButton(_ sender: Any) {
        myRx.asObserver().onNext("Hello")
    }

Так что, в моей голове, когда myButton нажимается во втором viewController, label в первом viewController должен обновляться при возвращении к этому viewController , Но из того, что я могу сказать, функция сработала, а subscription вообще не сработала.

1 Ответ

1 голос
/ 09 января 2020

Пожалуйста, убедитесь, что вы подписываетесь на тот же PublishSubject, на который вы публикуете события. Самый простой способ подтвердить это - установить контрольные точки и проверить адрес.

...