在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  C/ iOS 中 MVVM 和 Rac 中如何刷新列表單獨(dú)某一行?

iOS 中 MVVM 和 Rac 中如何刷新列表單獨(dú)某一行?

一個(gè) TableView,上面 10條數(shù)據(jù),我想刪除某一行,然后刷新這一行,在 MVVM 下我有幾個(gè)問題想請教下大家:

1.刷新列表這個(gè)動(dòng)作,是不是該在控制器里做?
2.更新數(shù)據(jù),就是上面刪除點(diǎn)擊的那一行數(shù)據(jù),相關(guān)邏輯是不是該在 ViewModel 里面做?
3.TableView 的數(shù)據(jù)源是不是一般定義在 ViewModel 里面?

如果 1 2 3 都是的話,我在 ViewModel 里面處理完刪除數(shù)據(jù)的邏輯,更新好數(shù)據(jù)源后,如果我想單獨(dú)刷新某一行,該怎么通知控制器刷新 TableView 呢?

如果只是簡單的調(diào)用 reloadData 刷新全部列表,我可以監(jiān)聽 ViewModel 的數(shù)據(jù)源:

- (void)viewDidLoad {
    [super viewDidLoad];
    
    @weakify(self);
    
    //按鈕 enabled 屬性綁定
    RAC(self.btnDismiss,enabled) = self.viewModel.validDismissSignal;
    
    [[[RACObserve(self.viewModel, authorizations) distinctUntilChanged] skip:1] subscribeNext:^(NSArray <RRAuthorization *> *authorizations) {
        @strongify(self);
        [self.tvAuthorization reloadData];
        NSLog(@"監(jiān)聽到了數(shù)據(jù)源有改變 %@",authorizations);
        
    }];
    
    [self.tvAuthorization registerNib:[UINib nibWithNibName:RRAuthorizationCellIdentifier bundle:nil] forCellReuseIdentifier:RRAuthorizationCellIdentifier];
    
}

希望對 MVVM RAC 比較了解的朋友能夠指教下....

回答
編輯回答
做不到

同問
如果cell內(nèi)部某個(gè)控件點(diǎn)擊了需要刷新這個(gè)cell的高度(非autolayout),如何做?
cell <-> cellViewModel
viewControllrViewModel <-> viewController

2018年9月22日 06:42