首页 > 解决方案 > RxSwift 无法识别按钮点击事件

问题描述

我有一个UIViewController带有 3 个按钮的子类。点击“继续”按钮 3 次后,我从导航堆栈中弹出此视图控制器并推送同一类的另一个实例。但是,当我推送了这个新的视图控制器对象时,我没有收到rx.tap事件。在添加.debug()这些订阅和我print(#function)deinit()视图控制器之后,我得到以下日志:

日志

我似乎程序无法将按钮与我的视图控制器的两个实例区分开来,因此在它们被处理之前第二次订阅。

有人可以帮我解决这个问题吗?提前致谢。

编辑:

以下是我订阅按钮点击的方式:

self.backButton.rx.tap
            .debug("back button")
            .bind(to: self.viewModel.backButtonPressed)
            .disposed(by: self.disposeBag)

标签: iosswiftevent-handlingrx-swiftreactive-swift

解决方案


来自 continue的事件很可能completed正在关闭订阅它的任何内容,因此当第二个 continue 按钮订阅它时,来自它的下一个事件将被忽略。


推荐阅读