大多数ViewController有一个tableview,数据源太大了。我可以将数据源移动到viewModel中,因为viewModel也有单元格需要的模型。
我不知道我是否明白你的意思。你希望将tableView的数据源设置为不同于ViewController的类,对吧?
你可以这样做。首先,确保你的类符合UITableViewDataSource协议。像这样:
// In Swift
class MyView: UIView, UITableViewDataSource {
}
// In Objective C, in myview.h
@interface MyView: UIView <UITableViewDataSource>
然后,在你初始化你的视图控制器的某个点显式地设置你的tableView数据源为MyView的一个实例。就像
// In Swift
let myView = MyView()
override func viewDidLoad() {
tableView.dataSource = myView
}
// In Objective C
@interface ViewController()
@property (strong, nonatomic) MyView *myView;
@end
@implementation ViewController
- (void)viewDidLoad() {
myView = [[MyView alloc] init];
tableView.dataSource = myView;
}
@end