UITableView不显示数据而不添加数据

时间:2017-09-27 23:01:08

标签: ios swift xcode uitableview

我正在观看这个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
}

}

这是我在界面构建器中的应用程序 enter image description here

这就是我的应用运行时看到的内容 enter image description here

1 个答案:

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