例如,我希望我的 View 显示 toast ,我现在这样做的方式是:
在 View 中:
RACObserve(self.viewModel, showToast) subscribeNext:^(NSNumber *isShow) {
if (isShow.boolValue) {
self showToast];
}
}
showToast
是我的 ViewModel 的一个属性,我觉得这种方式不是很具描述性,有没有更标准、更优雅的方式来实现呢?
为了提供更具描述性的内容,您可以创建一个 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/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |