【发布时间】:2021-11-29 17:49:21
【问题描述】:
我想创建一个具有适当格式的视图模型,可用于在 tableview 中显示数据。
预期输出:
Expected output screenshot image
我尝试创建如下视图模型,但我无法以正确的格式创建它并且它无法正常工作。
struct MyViewModel {
var headerlist : [String]
var listItem : [ListData] {
get {
return [ListData(title: "Check Detailed Info", type: .INFORMATION),ListData(title: "Check Document", type: .DOCUMENTS), ListData(title: "Check Policy", type: .DOCUMENTS)]
}
}
}
struct ListData {
var title: String
var type: HeaderType
}
enum HeaderType {
case INFORMATION
case DOCUMENTS
}
如何创建一个可以在下面的 tableview 委托方法中使用的视图模型。
let viewModel = MyViewModel()
func numberOfSections(in tableView: UITableView) -> Int {
return viewModel.headerlist.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let sectionitem = viewModel.headerlist[indexpath.section]
return sectionItem.listItem.count
}
public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
///Will be creating a headerview and title label outlet in it.
headerView.titleLabel.text = viewModel?.headerlist[section]
return headerView
}
我刚刚找到了一些链接,希望得到适当的可理解答案
UITableView with MVVM using Swift
【问题讨论】:
-
这与视图模型无关,而是模型的设计,您应该有一个包含标题属性和 ListItem 数组的类型,然后您的视图模型可以保存该类型的数组
标签: ios swift xcode mvvm viewmodel