例如,我希望我的观点能够显示祝酒词,我现在这样做的方式就像:
在视图中:
RACObserve(self.viewModel, showToast) subscribeNext:^(NSNumber *isShow) {
if (isShow.boolValue) {
self showToast];
}
}
showToast
是我的ViewModel的属性,我不认为这种方式非常具有描述性,是否有更标准,更优雅的方式来实现这一目标?
答案 0 :(得分:1)
为了提供更具描述性的内容,您可以创建一个RACS主题,以使用[self.toastsSubject sendNext:@"Toast info string of some kind"]
手动发送通知。
@weakify(self)
[self.viewModel.toastsSubject subscribeNext:^(id _) {
@strongify(self)
[self showToast];
}
更好的是,你可以让showToast采用一个参数(例如吐司的内容),然后你不需要使用@weakify
和@strongify
,而是可以解除信号直接使用rac_liftSelector
。
[self rac_liftSelector:@selector(showToast:)
withSignals:self.viewModel.toastsSubject, nil];