我正在观看这个Youtube教程,介绍如何在Swift中将单元格动态添加到UITableView。
我将视频关注到了一个发球台,但作者忽略了显示他的UITableView自定义单元格文件,所以我相信这就是我的问题所在。
同样我的问题是我的数据食物中的数据没有显示,我无法将数据添加到我的数组中。
这是我的viewController类 -
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var addFoodtextField: UITextField!
var foods: [String] = ["Bananas", "eggs", "grapes"]
override func viewDidLoad() {
super.viewDidLoad()
tableView.tableFooterView = UIView(frame: CGRect.zero)
}
@IBAction func addButtonTapped(_ sender: Any) {
insertNewFoodTitle()
}
func insertNewFoodTitle() {
foods.append(addFoodtextField.text!)
let indexPath = IndexPath(row: foods.count - 1, section: 0)
tableView.beginUpdates()
tableView.insertRows(at: [indexPath], with: .automatic)
tableView.endUpdates()
addFoodtextField.text = ""
view.endEditing(true)
}
}
extension ViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return foods.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let foodTitle = foods[indexPath.row]
let cell = self.tableView.dequeueReusableCell(withIdentifier: "foodCell") as! foodCell!
cell?.foodTitle?.text = foodTitle
return cell!
}
}
这是我的foodCell类
import UIKit
class foodCell: UITableViewCell {
var foodTitle : UILabel?
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
答案 0 :(得分:2)
viewDidLoad()
中缺少两行:
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self // This class is the tableview's data source
tableView.delegate = self // This class is the tableview's delegate
}