我有一个表格视图,我需要填充动态数据。
我以前是在一个单独的控制器中做过的,只是复制了所有内容。
但是,这次我不断收到SIGABRT错误。 我发现只要我将这两行包含在内,就会出错
// editJobTable.dataSource = self
// editJobTable.delegate = self
这是我的全视图控制器
import Foundation
import UIKit
class HelloworkJobsEditJobViewController: UIViewController{
fileprivate var presenter: HelloworkJobsEditJobPresenter?
@IBOutlet weak var editJobTable: UITableView!
func inject(presenter: HelloworkJobsEditJobPresenter) {
self.presenter = presenter
}
var helloworkJob: HelloworkJob!
override func viewDidLoad(){
super.viewDidLoad()
helloworkJob = presenter?.getHelloworkJob()
editJobTable.dataSource = self
editJobTable.delegate = self
// editJobTable.reloadData()
}
@IBAction func tapCloseButton(_ sender: Any) {
self.dismiss(animated: true, completion: nil)
}
}
extension HelloworkJobsEditJobViewController: UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
return 7
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
print("\(#line): \(#function) \(indexPath.row)")
let cellIdentifier = "HelloworkJobsEditJobCell"
guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as? HelloworkJobsEditJobCell else {
fatalError("The dequeued cell is not an instance of HelloworkJobsEditJobCell.")
}
cell.cellLabel.text = "labeltest"
cell.cellTextField.text = "textfieldtest"
return cell
}
}
extension HelloworkJobsEditJobViewController: UITableViewDelegate {
}
非常感谢任何有关它可能引发此错误的想法。
答案 0 :(得分:3)
您必须使用单元格自定义类
注册tableViewtableView.register(UINib(nibName: "engineTableViewCell", bundle: nil), forCellReuseIdentifier:"cellID")
或者
tableView.register(engineTableViewCell.self, forCellReuseIdentifier: "cellID")
答案 1 :(得分:2)
像这样使用:
extension HelloworkJobsEditJobViewController: UITableViewDelegate {
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
return 7
}
}
extension HelloworkJobsEditJobViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
print("\(#line): \(#function) \(indexPath.row)")
let cellIdentifier = "HelloworkJobsEditJobCell"
guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as? HelloworkJobsEditJobCell else {
fatalError("The dequeued cell is not an instance of HelloworkJobsEditJobCell.")
}
cell.cellLabel.text = "labeltest"
cell.cellTextField.text = "textfieldtest"
return cell
}
}