我可以将tableview的数据源绑定到我的viewModel

时间:2016-08-09 10:21:23

标签: ios tableview datasource viewmodel

大多数ViewController都有一个tableview,数据源太大了。  我可以将数据源移动到viewModel中,因为viewModel还具有单元所需的模型。

1 个答案:

答案 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