我正在尝试创建一个简单的应用程序,可以在其中将类单元格添加到TableView中,但是当我单击“添加”按钮时它不会显示。我不确定我在哪部分做错了。
这是我的Main.storyboard
这是我在ManageViewController.swift
中的代码
import UIKit
class ManageViewController : UIViewController, UITableViewDataSource{
@IBOutlet weak var tableView: UITableView!
var classList = [String]()
override func viewDidLoad() {
super.viewDidLoad()
//classList = ["CSC 2431","CSC 4498"]
createAlert(title: "Add class", message: "Click plus button to add class")
classList = ["CSC 2431","CSC 4898"]
// Do any additional setup after loading the view.
}
@IBAction func onAddTapped(_ sender: UIBarButtonItem) {
let alert = UIAlertController(title: "Add Class", message: nil, preferredStyle: .alert)
alert.addTextField { (classListTF) in
classListTF.placeholder = "Enter Class"
}
let action = UIAlertAction(title: "Add", style: .default) { (_) in
guard let list = alert.textFields?.first?.text else { return }
print(list)
self.classList.append(list)
self.tableView.reloadData()
}
alert.addAction(action)
present(alert, animated: true)
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return (classList.count)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = UITableViewCell(style: UITableViewCell.CellStyle.default, reuseIdentifier: "classCell")
cell.textLabel?.text = classList[indexPath.row]
return(cell)
}
}
答案 0 :(得分:1)
我认为您忘记在桌上设置dataSource
。您可以在Interface Builder或viewDidLoad()
中进行此操作。
tableView.dataSource = self
答案 1 :(得分:0)
在主线程上重新加载 tableview 。
DispatchQueue.main.async {
// Perform your async code here
Self.tableview.reloadData()
}