【发布时间】:2019-12-10 03:51:59
【问题描述】:
我有一个视图控制器,它需要了解从另一个视图控制器设置的布尔变量 headerCollapsed。在vc1中我有:
headerCollapsed = ReplaySubject<Bool>.create(bufferSize: 1)
collapsedObservable = headerCollapsed.asObservable()
还有一个将布尔值设置为 true 的函数:
func updateHeader() {
self.headerCollapsed.onNext(true)
}
然后,为了避免创建进一步的依赖关系并直接调用 vc1,我试图通过依赖注入和路由器将collapsedObservable而不是headerCollapsed一直传递到vc2。我试图简化这个问题,但实际上 vc1 和 vc2 之间有好几层。
但是发生的事情是,无论如何,在我的路由器类内collapsedObservable 是零,并且我无法将其设置为稍后从vc2 中调用它时更新的默认值。那么,像这样传递实际的 observable 是否可能?
【问题讨论】:
标签: swift observer-pattern rx-swift swinject