大多数ViewController都有一个tableview,数据源太大了。 我可以将数据源移动到viewModel中,因为viewModel还具有单元所需的模型。
答案 0 :(得分:1)
我不知道我是否清楚地了解你。您希望将tableView的dataSource设置为与其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