【发布时间】:2020-01-08 13:27:00
【问题描述】:
玩弄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 中按下时,第一个viewController 中的label 应该在返回到viewController 时更新。但据我所知,该功能已被触发,但 subscription 根本没有被触发。
【问题讨论】:
-
你确定你正在展示你正在实例化的同一个视图控制器吗?我问是因为那部分不在 sn-p 中。
-
@nanibi 你是对的。我改变了它,但它仍然没有影响结果。不过感谢您的注意。编辑答案。
-
@nanibi 好的,现在解决了。你是对的。没有在订阅者上使用与用于呈现第二个 vc 的实例相同的实例是一个问题。我创建了一个新实例并订阅了它。谢谢您的帮助。如果您希望我投票并检查答案,请写下正确的回复:)
标签: ios swift rx-swift publishsubject