1. 程式人生 > >RAC rac_signalForControlEvents Button方法多次觸發的問題

RAC rac_signalForControlEvents Button方法多次觸發的問題

專案中使用了RAC, 使用過程中遇到了很多坑.

其中一個比較普遍的就是:
在cell中使用之後,在cell重用的時候, 每次重新整理一遍cell, button就會多觸發一次, 造成button的多次觸發;
若跳轉到另一個頁面, 就會多次建立VC, 造成冗餘及影響.

解決方法:

通過takeUntil:someSignal來終止cell.button之前的signal了:
takeUntil :someSignal的作用是當someSignal sendNext時,當前的signal就sendCompleted,someSignal就像一個裁判,哨聲響起就意味著比賽終止:

新增takeUntil: 方法就可以防止多次呼叫觸發了.

[[[cell.loginButton rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:cell.rac_prepareForReuseSignal] subscribeNext:^(__kindof UIControl * _Nullable x) {
   
}];