首页 > 解决方案 > 为什么我的 rx 订阅没有在我的 onNext 上触发?

问题描述

玩弄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
   })
}

如果您转到第二个,则viewController有一个触发onNext事件的按钮。像这样:

    var myRx = PublishSubject<String>()

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

因此,在我的脑海中,当myButton在第二个中按下时,第viewController一个label中的第一个viewController应该在返回时更新viewController。但是据我所知,该功能已被触发,但subscription根本没有被触发。

标签: iosswiftrx-swiftpublishsubject

解决方案


请确保您订阅的内容与PublishSubject您发布活动的内容相同。确认这一点的最简单方法是设置断点并检查地址。


推荐阅读