// uitableview+raccommandsupport.m 檔案中**
- (void)setrac_refreshcommand:(raccommand *)command ];
}
這裡的分類主要就是給tableview增加mjrefresh,並且將傳入command引數傳入mjrefresh執行的block中* viewmodel中定義重新整理和載入更多的事件
檔案中**
nsarray *array = @[
@,@,
@,@,
@,@,
@,];
nsmutablearray *modelarray = [nsmutablearray array];
[array enumerateobjectsusingblock:^(id _nonnull obj, nsuinteger idx, bool * _nonnull stop) ];
@weakify(self);
self
.refreashcmd = [[raccommand alloc] initwithsignalblock:^racsignal *(id input) ];
}];self
.loadmorecmd = [[raccommand alloc] initwithsignalblock:^racsignal *(id input) ];
}];
這裡定義兩個command,將資料報在signal中,再包在command中* 控制器中將viewmode的command事件和uitableview繫結
控制器中的繫結就非常簡單,這樣繫結之後,tableview的重新整理事件就會進入viewmodel的command的block中
// viewcontroller.m 檔案中** command繫結
self.tableview
.rac_refreshcommand = self.viewmodel
.refreashcmd
; self.tableview
.rac_dropcommand = self.viewmodel
.loadmorecmd
;
檔案中**
racsignal *refreshendsignal = [[self.refreashcmd executionsignals] switchtolatest];
racsignal *loadmoreendsignal = [[self.loadmorecmd executionsignals] switchtolatest];
// 上拉和下拉兩個訊號統一輸出
self.reloadtableviewsignal = [racsignal merge:@[refreshendsignal, loadmoreendsignal]];
// viewcontroller.m 檔案中**
[self rac_liftselector:@selector(reloadtableview:) withsignals:self.viewmodel
.reloadtableviewsignal, nil];
/** 重新整理列表 */
- (void)reloadtableview:(id)obj
ReactiveCocoa開發中常見用法
7.1 代替 rac signalforselector 用於替代 self rac signalforselector selector userdidscroll tophotoatindex fromprotocol protocol frpfullsizephotoviewcontrolle...
ReactiveCocoa常見巨集
1 rac target,keypath,nil value 用於給某個物件的某個屬性繫結。只要文字框文字改變,就會修改label的文字 rac self.labelview,text textfield.rac textsignal reactivecocoa bindings rac self,...
ReactiveCocoa個人記錄
self.mybutton rac signalforcontrolevents uicontroleventtouchupinside subscribenext id x 複製 self.mytextfield rac textsignal subscribenext id x distinct...