例如,我希望我的 View 显示 toast ,我现在这样做的方式是:
在 View 中:
RACObserve(self.viewModel, showToast) subscribeNext:^(NSNumber *isShow) {
if (isShow.boolValue) {
self showToast];
}
}
showToast 是我的 ViewModel 的一个属性,我觉得这种方式不是很具描述性,有没有更标准、更优雅的方式来实现呢?
Best Answer-推荐答案 strong>
为了提供更具描述性的内容,您可以创建一个 RACSubject 以使用 [self.toastsSubject sendNext"Toast info string of some kind"] 手动发送通知。
@weakify(self)
[self.viewModel.toastsSubject subscribeNext:^(id _) {
@strongify(self)
[self showToast];
}
更好的是,你可以让 showToast 接受一个参数(例如 toast 的内容),然后你就不需要使用 @weakify 和 @strongify ,而不是你可以直接使用 rac_liftSelector 解除信号。
[self rac_liftSelectorselector(showToast
withSignals:self.viewModel.toastsSubject, nil];
关于ios - MVVM 与 ReactiveCocoa,ViewModel 如何告诉 View 做一些一次性操作?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/31353596/
|