我试图在用户点击某个单元格时调用viewModel.userDidSelectItem(identifier: "DetailMainViewController")
功能,但我无法使用,print(indexPath.row)
为零,第二个我不知道如果它正确的话。
import Foundation
import UIKit
class MainViewController: UIViewController, UITableViewDataSource {
@IBOutlet var tableview:UITableView!
var viewModel: MainViewModel = MainViewModel()
override func viewDidLoad() {
super.viewDidLoad()
viewModel.loadUsers {
self.tableview?.reloadData()
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return viewModel.fakeUsers?.count ?? 0
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) ->UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "fakeUserObjectCell") as! MainTableViewCell
cell.fakeUserObject = viewModel.fakeUsers?[(indexPath as NSIndexPath).row]
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print(indexPath.row)
viewModel.userDidSelectItem(identifier: "DetailMainViewController")
}
}
答案 0 :(得分:0)
当您使用tableview时,需要将UITableViewDataSource
和UITableViewDelegate
设置为MainViewController
。
并覆盖以下功能
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}